【发布时间】:2012-03-27 07:03:31
【问题描述】:
我想生成七个连接余弦函数的频谱。
我不确定我的代码是否正确;尤其是N = time*freq*7是否正确,或者是否应该是N = time*freq(不包括时间七)。
我的代码如下:
sn = [1, 2, 3, 4, 5, 6, 7, 8];
time = 1;
freq = 22050;
N = time*freq*7;
dt = 1/freq;
t = 0 : dt : time - dt;
y = @(sn, phasePosNeg) cos(2*pi*(1200-100*sn) * t + phasePosNeg * sn*pi/10);
f = [y(sn(1), 1), y(sn(2), -1), y(sn(3), 1), y(sn(4), -1), y(sn(5), 1), y(sn(6), -1), y(sn(7), 1)];
F = abs(fftshift(fft(f)))/N;
df = freq/N;
faxis = -freq/2 : df : (freq/2-1/freq);
plot(faxis, F);
grid on;
axis([-1500, 1500, 0, 0.6]);
title('Frequency Spectrum Of Concatenated Cosine Functions');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
我想我的问题的本质是: 尖峰的高度应该等于 0.5 的 1/7,还是只是 0.5? (所有余弦函数的幅度都是 1。)
谢谢。
【问题讨论】:
-
这段代码的结果就是这样。我不确定问题是什么;结果不符合你的预期吗?
-
有点,我不确定我是否正确计算了级联 cos 函数的频谱,因为我不确定 N 是否应该等于 7*timefreq 或只是时间 i>频率。
-
你为什么要连接这些不同的波形?当频率/相位发生变化时,每 1 秒就会出现一次可怕的不连续性。此外,如果您在整个 7 秒内进行 FFT,它也将毫无意义,因为 (a) 信号不是静止的 (b) 不连续性会产生大量伪影。我想知道您是否真正想做的是combine(即add)这7个不同的频率分量,这会更有意义吗?
-
感谢您的回复。我完全同意你所说的。任务是将七个相加得到频谱,然后将七个连接起来得到频谱。然后比较频谱和“注意”它们是相同的;但是,如果我使用 N = freqtime*7,我不会得到相同的频谱,所以我想知道这是否正确。我应该补充一点,如果我将 N 更改为等于频率时间,我会得到相同的频谱;但是我不认为这是正确的。