Author Topic: representação do domínio de freqüência do sinal de domínio de tempo (Matlab  (Read 3631 times)

moonnightingale

  • Guest
Eu quero ter o domínio de representação de freqüência que é transformada de Fourier de um sinal.Por exemplo, eu estou tendo a função Cos (t).Se reprsent na freqüência domian eu vou ter um de dois pulsos (f - a) e outras em (f a).Como posso ver isso em Matlab.plz ajuda


AndyECE

  • Guest
Bem-vindo ao Matlab!Você vai descobrir que é extremamente útil para esse tipo de análise.Ele tem muitos recursos incorporados para a transformação entre freqüência e no domínio do tempo.

A coisa a lembrar é que o Matlab faz tudo numericamente, não simbolicamente.Como resultado, você geralmente acabam operando com séries de dados armazenados em vetores.

Aqui está um exemplo que eu juntos para você.Nós definimos uma onda seno com uma freqüência de 10 Hz.Em seguida, realizar uma Fourier tranfsorm e ver seu conteúdo de freqüência.Como esperado, vemos dois picos, um em -10 Hz, e outra em 10 Hz.Você pode copiar e colar tudo abaixo diretamente na linha de comando, ou seria melhor para colá-lo em arquivo e m.Definir número% das amostras para exame
number_of_samples = 2 ^ 10;
cosineFreq = 10;% Hz

Definir o sinal%
t = linspace (0, 10, number_of_samples);
sinal = cos (2 * pi * t * cosineFreq);

Traçar% para ilustrar que é uma onda senoidal
plot (t, sinal);
title ('Time-Domain sinal');

Tome% transformada de Fourier
fftSignal = fft do sinal ();

% Aplicar fftshift para colocá-la na forma que estamos acostumados (ver documentação)
fftSignal = fftshift (fftSignal)

% Em seguida, calcular o eixo de freqüência, que é definida pela taxa de amostragem
T = t (2)-t (1);
fs = 1 / T;
= Fs / 2 * f linspace (-1,1, number_of_samples);

% Uma vez que o sinal é complexo, precisamos traçar a magnitude para que ele
direito de olhar%, por isso usamos abs (valor absoluto)
figura
plot (f, abs (fftSignal));
title ('FFT magnitude da co-seno');
xlabel ('Freqüência (Hz)');
ylabel ('valor');


moonnightingale

  • Guest
Muito obrigado por responder detalhada ur.
Can u gentilmente me explicar estes três passos

T = t (2)-t (1);
fs = 1 / T;
= Fs / 2 * f linspace (-1,1, number_of_samples);

Por que estamos usando estes e não a regra valem para todas as freqüências.mesmo para 10 mil graças HZ muito.


AndyECE

  • Guest
Na realidade, Matlab não é realizar uma verdadeira transformação de Fourier.Pelo contrário, é realizar uma transformada de Fourier discreta.

A fim de forma inequívoca uma medida de freqüência, você deve ter pelo menos duas amostras por período.Isto significa que a minha taxa de amostragem limita a alta freqüência que se pode medir.

A freqüência máxima é de apenas 1 / 2 a taxa de amostragem meu.

Esta é uma limitação intrínseca à DFTs.Isso é verdadeiro para qualquer faixa de freqüência.A fim de medir adequadamente as altas freqüências, você só tem que aumentar sua taxa de amostragem para o dobro da freqüência mais alta do que você espera de medir.

fs é a frequência de amostragem desta série de tempo.Eu divido por dois, e que define a faixa de freqüência.


moonnightingale

  • Guest
muito obrigado por mais uma vez resposta detalhada.você é realmente bom em Matlab e comunicação.
Uma última coisa que eu não podia entender a exigência de fftshift.
Qual é a sua principal function.If gentilmente me explicar.Obrigado


moonnightingale

  • Guest
Na última parte do meu projeto Bandpass modulação que tenho que fazer este passo

(Iii) comparação do desempenho da curva simulada versus curva teórica, juntamente com o tempo e freq.representação do domínio dos sinais ....

Can u me guia para esta etapa e submeter algum material de leitura.Quando eu perguntei ao meu instrutor abt análise domian freqüência ele me disse

Por freq análise no domínio da banda ... resposta freq sinal deve ser visto na freqüência em torno de zero ... e upconverted sinal em torno da transportadora freq

U pode dar o seu exemplo


AndyECE

  • Guest
Quando Matlab calcula a FFT, organiza o eixo com freqüência f = 0 (ou seja, componente DC) como o ponto de partida.

Estamos acostumados a ver DC como o centro do gráfico, para que todos os fftshift faz é trocar as metades direita e esquerda dos dados de modo que a parte freqüência zero é no meio.

Isto é bom ter em mente se você está sempre calcular a IFFT (inverse Fourier Transform), porque a forma como Matlab quer os dados de entrada não é a mesma maneira que você está acostumado.

Aqui está um exemplo de olhar para um sinal de Amplitude Modulada.Esperamos que ele possa começar a trabalhar com outros tipos de modulação.%---------------------------------------
fechar todas as
% Set minha frequência de amostragem
fs = 2 ^ 15;

% Define um segundo no tempo amostrados todos os fs
t = linspace (0, 1, fs);

% Definir datarate (quantos bits por segundo)
datarate = 2 ^ 6;Sinal% Baseband
binOne = ones (1, fs / datarate);
= BinZero zeros (1, fs / datarate);

% Estou enviando para ascii'$$$$$$$$' para mostrar o quanto dinheiro nós estaremos fazendo como
engenheiros%
asciiDollarSign = ([binZero binZero binOne binZero binZero binOne binZero binZero]);
basebandsignal = repmat (asciiDollarSign, 1, 8);

% BASEBAND ----------------------------------------------- ANÁLISE ---------
figura
plot (t, basebandsignal);
title ('Isto é o que o sinal de banda parece)
xlabel ('Tempo (seg)');
ylabel ('amplitude (v)');
axis ([0 1 -. 5 1.5]);

= Fs / 2 * linspace f (-1, 1, fs);

basebandFFT fftshift = (fft (basebandsignal));
figura
plot (f, abs (basebandFFT));
title ('frequência do Baseband Signal ");
xlabel ('Freqüência (Hz)');
ylabel ('Magnitude');
%------------------------------------------------- -----------------------------------------------------------------------% ANÁLISE DE FREQÜÊNCIA CARRIER -

% Agora crie o nosso sinal mudulated
carrierFreq = 2 ^ 12;

carrierWave = cos (2 * pi * t * carrierFreq);

% De modulação de amplitude
modulatedsignal = carrierWave basebandsignal .*;

figura
plot (t, modulatedsignal);
title ('Amplitude sinal modulado');
xlabel ('Tempo (seg)');

Pesquisar conteúdo% de freqüência
modulatedsignalFFT fftshift = (fft (modulatedsignal));

figura
plot (f, abs (modulatedsignalFFT));
title ('frequência do sinal de amplitude modulada);
xlabel ('Freqüência (Hz)');
ylabel ('Magnitude');
%------------------------------------------------- -------------------------


tavakoliahmad

  • Guest
oi,
Obrigado pela atenção,
Eu escrevi um código para FFT com janela de dados.magnitude da resposta é muito alto.
Anexei meu código.Por favor, você encontrar o meu erro.
meu sinal é não-estacionária ondas.

clc
Fs = 1E8;
fftLength = 5000;
Calcula% janela FFT (fftlen comprimento, com 50% de sobreposição)
% Então FFT inversa com a sobreposição-add.Se nenhum tratamento está inserida
% Para a função a seguir, a saída deve ser, essencialmente, idênticas
% Para a entrada.
in = in (

Sorriso

;
% Create buffer de saída para sobreposição adicionar
Xx = zeros (1, length (in));
Comprimento% Criar fftlen "levantou janela função cosseno
vento = 0,5 * (1-cos (2 * pi (0: fftLength-1) / fftLength));
para i = 1: fftLength / 2: (length (in)-fftLength)
ff = fft wind. * (em (i

Triste

i fftLength-1)), fftLength);
z = abs (FF);
xx (i

Triste

i fftLength-1)) = xx (i

Triste

i fftLength-1)) IFFT (ff, fftLength);
final
figura
semilogx ([0: fftLength-1] * Fs fftLength / abs (FF))
figura
(Xx parcela)


moonnightingale

  • Guest
AndyECE enviei mensagem u na PM
gentilmente ler graças


AndyECE

  • Guest
Guys - Nada pessoal, mas eu não estou interessado em PMing uns aos outros.Estou aqui para contribuir para o fórum, ajudando apresentá-lo ao processamento de sinais em Matlab de forma prática.

Eu não estou aqui para você me enviar e-mail o código para depuração.Vocês têm um link para uma referência para o que você está tentando implementar?É difícil olhar para o código quando você não é positivo, o que deveria acontecer


Communications_Engineer

  • Guest

AndyECE escreveu:

Guys - Nada pessoal, mas eu não estou interessado em PMing uns aos outros.
Estou aqui para contribuir para o fórum, ajudando apresentá-lo ao processamento de sinais em Matlab de forma prática.Eu não estou aqui para você me enviar e-mail o código para depuração.Vocês têm um link para uma referência para o que você está tentando implementar?
É difícil olhar para o código quando você não é positivo, o que deveria acontecer

Aqil

  • Guest
Olá;
Eu estou procurando um código em Matlab para transferência de dados no domínio da freqüência para o domínio do tempo.
ello;
Eu não uma função, mas eu tenho as medidas (frequência (3 GHz e 10 GHz), amplitude dB) e fase () e eu queria ter, a partir desses dados, Power (mW) versus atraso (ns).
Preciso de sua ajuda, eu sou um novato em Matlab
AtenciosamenteAtenciosamente


Walace

  • Newbie
  • *
  • Posts: 1
    • View Profile
    • Email
Boa noite. Gostaria de implementar em meu codigo do Matlab uma transformada de Fourier, do filtro de passa baixa. Fico muito grato.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71