我是matlab的新手,作为我大学任务的一部分,我应该在matlab上绘制这些信号。我对psd图的单位有一些问题。
1)j=0:1/100:1; %time index
z=sin(2*pi*5*j); %sine wave signal
z=z*2;
plot(z),xlabel('Sampling Points'),ylabe;('Amplitude');
figure,psd(z)
2)noise=rand(1,100);
plot(noise);
figure,psd(noise);
3)[B,A]=butter(10,3/50,'low');
LPFz=filtfilt(B,A,z);
plot(LPFz)
figure,psd(LPFz)
4)y=wavread('sp1.wav');
Fs=44100; %sampling frequency
wavplay(y,Fs);
save sp1.mat y
plot(y(:,1)),title('Waveform of Speech'),xlabel('Sample Points'),ylabel('Amplitude')
figure,psd(y(:,1))
我非常感谢任何可以帮助我的人告诉我我应该用于psd频谱的x轴的单位,y轴是以dB为单位,我得到了。我不知道该怎么做x < / p>
答案 0 :(得分:0)
如果您正在查看第一个示例,则plot(z)的x坐标应该是时间。毕竟,您将j定义为时间索引,并将z函数生成为函数z(t)。
如果我没弄错,你的z函数是结构2*pi*omega*time
的正弦,omega
是一个常数(5)。
如果您有关于该常数的更多信息,您可以更加具体地了解您的x轴。
事实上你可以看看你的功能:指数和三角函数(正弦,余弦等)必须没有维度(秒,米,公斤等)
如果你想知道psd功能的单位,那就是一个频谱。这意味着x轴是频域(1 /秒= 1Hz)。在Matlab 8.2中,建议使用spectrum(z)代替psd(z)