ajudar! análise de espectro precisa Matlab

Y

yujun61hugh

Guest
Eu preciso obter o componente precisa espectro do sinal Eu gerada em Matlab Simulink. O código que uso agora é mostrado como Fs = 2e6, freqüência de amostragem% T = 1/Fs;% L Tempo da amostra = 2000000; Comprimento% do sinal de saída y = (2001: (L 2001), 2) '; NFFT = 2 ^ nextpow2 (L); poder% Em seguida, de 2 a partir de comprimento de y Y = fft (y, NFFT) / L; f = Fs / 2 * linspace (0,1, NFFT / 2); trama (f, 2 * abs (Y (1: NFFT / 2)) título) ("Espectro de amplitude Single-Sided de y (t) ') xlabel (' Freqüência (Hz) ') ylabel (' | Y (f) | ') Basicamente, eu simular o sistema de 1,001 seg. e tomar os últimos dados 1s para fazer FFT. No entanto, quando eu testar esse código usando uma onda pecado ideal com frequência 1K Hz e amplitude igual a 1. o resultado FFT mostra que no Hz 1K, o componente de sinal é apenas de 0,75. quem poderia me dizer o motivo e como melhorar o código. Muito obrigado. [Size = 2] [color = # 999999] Adicionado após 7 minutos: [/color] [/size] eu fazer o upload do espectro figura aqui.
 
Por que você está lusing esta linha?? y = saída (2001: (L 2001), 2) '; saída esp?? (Onde está o sinal sinuisoidal vez), também, simular o sistema para 1,001 seg.?? Y não simular exatamente por 1 segundo. porque, o número exato de ciclos do "x" onda senoidal Hz que ocorrem no n. de amostras i / p sinal deve ser um número inteiro. para obter o espectro adequado. outro ponto: o código que você usou f = Fs / 2 * linspace (0,1, NFFT / 2), basta usar f = Fs / 2 * linspace (0,1, NFFT / 2 +1); plot (f, 2 * abs (Y (1: NFFT / 2) +1)) para traçar o espectro de um só lado. se vc tem galinha mais dúvidas vsist o site abaixo indicado: www.mathworks.com no motor de busca tipo fft, ver detalhes de documentação. também visite www.mathworks.com/support/tech-notes/1700/1702.html www.mathworks.com/support/tech-notes/1700/1703.html www.mathworks.com/support/tech-notes/1700/1704.html Feliz aprendizagem
 

Welcome to EDABoard.com

Sponsor

Back
Top