Plot autocorrelation and power spectrum

5 ビュー (過去 30 日間)
Aik Hong
Aik Hong 2013 年 12 月 15 日
コメント済み: Aik Hong 2013 年 12 月 16 日
Hi..i'm a beginner in using Matlab. I'm currently trying to generate a Gaussian random numbers, then use it as an input to a low pass filter, cut-off frequency 1000Hz. I have the random number generated as: : f = randn(1000,1) * sqrt(2) + 0; I'd like to ask how can i proceed from here to calculate and plot the autocorrelation and power spectrum at input/output of the filter.

採用された回答

Wayne King
Wayne King 2013 年 12 月 15 日
If you have the Signal Processing Toolbox, simply use xcorr() and periodogram()
x = sqrt(2)*randn(1000,1);
Numlags = 50;
[xc,lags] = xcorr(x,Numlags,'coeff');
stem(lags(51:end),xc(51:end))
% power spectrum
Fs = 1; % sampling frequency
[Pxx,F] = periodogram(x,[],length(x),Fs);
figure;
plot(F,10*log10(Pxx))
  4 件のコメント
Wayne King
Wayne King 2013 年 12 月 16 日
You need more information than that. You need to know minimally the sampling frequency.
Aik Hong
Aik Hong 2013 年 12 月 16 日
Oh ok. I've previously designed (in fdatool) the filter as the IIR Butterworth filter, sampling frequency 8000Hz and cutoff frequency 1000Hz. I've exported the filter to workspace.Can you advice me how should i use the random number generated as input to this filter and then plot its output autocorrelation and power spectrum?

サインインしてコメントする。

その他の回答 (1 件)

Wayne King
Wayne King 2013 年 12 月 16 日
It depends on what you have exported. If you exported a filter object -- I'll assume this.
Let Hd be your filter object
x = randn(1000,1); % white noise input 1,000 samples in length
y = filter(Hd,x);
  1 件のコメント
Aik Hong
Aik Hong 2013 年 12 月 16 日
Thanks a lot. I got my output for autocorrelation and power spectrum like this:

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeFilter Design についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by