我是Matlab的新手,我想用这样的词来绘制函数:
% Taller de analisis de frecuencias %
n = 0:3999;
Fs = 8000;
x1 = sin(2*pi*1000/Fs*n);
subplot(3,1,1);
stem(x1(1:9));
disp('FFT con N=4096');
nfft = 4096;
y = fft(x1,nfft);
subplot(3,1,2);
stem(y);
subplot(3,1,3);
stem(fftshift(y));
我正在使用它作为研究的一部分,学习分析从模拟到数字信号转换的频率。问题是我想在第二个词干中标记水平轴,其值为0到2 * pi(这是表示信号的正确值),然后我必须剪切表示的第二部分并将其移动到前面(结果将是第3个杆(实际上这个是使用fftshift功能获得的,这与我在前面切割和粘贴相同)
我无法用0:2 * pi的值标记水平轴,所以我要求帮助,因为我知道这可以做到..
非常感谢
答案 0 :(得分:0)
Deve在评论中的建议解决了您所说的问题:使用stem(X,Y)
,其中X是与Y相同长度的向量,具有所需的端点。使用linspace
命令创建此类向量。
您可能还想使用axis tight
,以便不留下看起来像零频率区域的空白区域。以下是我在调整后得到的结果:
这是代码:
n = 0:3999;
Fs = 8000;
x1 = sin(2*pi*1000/Fs*n);
subplot(3,1,1);
stem(x1(1:9));
disp('FFT con N=4096');
nfft = 4096;
y = fft(x1,nfft);
subplot(3,1,2);
stem( linspace(0,2*pi, length(y)), y);
axis tight
subplot(3,1,3);
stem( linspace(-pi,pi, length(y)), fftshift(y));
axis tight