フィルターのクリア

How to properly determine bandwidth of a signal?

7 ビュー (過去 30 日間)
Arquelau
Arquelau 2016 年 10 月 23 日
回答済み: Walter Roberson 2016 年 10 月 24 日
Hi,
I am trying to determine the total bandwidth of a signal, given by
cos(200*pi*t) + sin(202*pi*t)
However, I am struggling to do it. I am using the function obw(), but as I change the amount of points in the linspace that defines t, the value found for the bandwidth also changes, and I don't understand why.
Also,the spectra of this signal is not being ploted as I expected it to be. From the theory, I expect impulses in the frequencies 200*pi and 202*pi (negative and positive for both). But what I get is
Below is my code:
a = 1;
t = linspace(0,0.5,2000);
x = a*cos(200*pi*t) + a*sin(202*pi*t);
w = obw(x)
plot(t,x);
fftm = fft(x)./numel(x);
fftm = abs(fftm);
fftm = fftshift(fftm);
fscale = linspace(-w, w ,2000);
figure
plot(fscale,fftm);
I am also not sure if I am properly setting the fscale variable.
Can anybody help me? How to properly find the bandwidth of this signal?
Thank you.

採用された回答

Walter Roberson
Walter Roberson 2016 年 10 月 24 日
You should be passing in the sampling frequency to obw.
Assuming your t values are in seconds, it appears to me your Fs would be 3998.
Fs = 1/(t(2)-t(1))
You might be expecting 4000 instead of 3998, but remember that linspace(0, 0.5, 2000) puts a point at 0, and a point at 0.5, and (2000-2) points in-between. If 0 were intended to be the first point in a cycle and 0.5 were intended to be the first point of the next cycle, then for the cycle to be length 2000, time 0.5 would need to be at point 2001.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatched Filter and Ambiguity Function についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by