2013-04-28 82 views
0

情节我有一个wav文件,我将其导入到MATLAB,并使用下面的功能恢复,从采样数据的原始信号:缩放在MATLAB

sub1=wavread('jamming.wav'); 
magnSub1=abs(fft(sub1)); 
phaseSub1=angle(fft(sub1)); 
sub1_L=magnSub1.*exp(i*phaseSub1); 
sub1_L=ifft(sub1_L); 
q=(2^15-1)*(abs(sub1_L).*cos(angle(sub1_L))); 
plot(q); 
axis([44000,45000,-2^15+1,+2^15-1]); 

但现在我要上添加一些散点图现有的图形比较采样数据和连续波。 这是我到目前为止有:

[wave,fs]=wavread('jamming.wav'); 

sound(wave,fs); 

t=0:1/fs:(length(wave)-1)/fs; 
z = t([1],:); 
wave1=wave(:,[1]); 
scatter(z,wave1); 

的问题是,我不能在x轴缩放到第一张图。有人可以帮我解决这个问题吗?我的最后一张图应该和本页面的一样:http://www.cheers4all.com/2012/07/analog-to-digital-convertor-matlab-source-code/

帮助将非常感谢,提前谢谢!

+0

你确定你不是在寻找一个'stem'情节吗?这似乎是用来在你提供的链接上生成图表。当你第一次绘制数据时,你也不会使用x矢量绘图 - 你如何期望它与第二种情况相匹配,在这种情况下,x轴的矢量为“t”? – wakjah 2013-04-28 21:17:48

+0

@wakjah我试图给第一张图添加时间,但是如果我在第二张图中使用t,它会一直说t和q应该是相同的大小。 – 2013-04-28 21:45:31

回答

0

这里的问题是,你的第一条曲线绘制在范围1:length(q)而第二个情节正在通过一系列策划0 : 1/fs : (length(wave)-1)/fs

假设你的价值观qwave1是相同的长度(和它看起来像他们可能be),请尝试:

figure; hold all; 
plot(z, q); 
plot(z, wave1); 

然后,您可以根据自己的喜好调整每个绘图命令的线条属性。

如果qwave1是不完全一样的长度,一个快速和肮脏的解决将是:

figure; hold all; 
plot(1:length(q), q); 
plot(1:length(wave1), wave1); 

这可能不会给你正是你在找什么,但它应该朝着正确的方向迈出一步。