如正弦波可用如下代码
x=0:05:2pi;
y=sin(x);
plot(x,y,'r-')
axis (-1,4,-2,2)
记得用英文状态输入,还有,其实所有的函数都一样,只是构造出这个函数就行,还有就是自变量应当分的细一些,这样画出的图像好看。
示波器应该能生成数据文件吧,把数据文件import进matlab就可以了
第二个问题很简单,其实所谓连续波形也只是离散点的包络而已,你上面那个程序就可以,只需要把subplot(223);plot(f(1:N/2),X3(1:N/2),'o')这句话中最后的那个‘o'去掉就可以了
瀑布图是指通过巧妙的设置,使图表中数据点的排列形状看似瀑布。
这种效果的图形能够在反映数据的多少的同时,直观的反映出数据的增减变化,在工作表中非常有实用价值。
%你好,该程序读mywavwav文件,然后显示频谱以及波形。注意,mywavwav文件不要太长,否则运算会很慢。
[y,Fs,bits]=wavread('mywavwav');%读出信号,采样率和采样位数。
y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2)
sigLength=length(y);
Y = fft(y,sigLength);
Pyy = Y conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs(0:halflength)/sigLength;
figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');
t=(0:sigLength-1)/Fs;
figure;plot(t,y);xlabel('Time(s)');
matlab只能做离散数值计算(符号计算只是小部分),所以绘制上述信号图形必须抽样离散化(指定时长,抽样频率等),时域图形可逐点画出,频域要做离散FFT后画出。
根据那奎斯特抽样定理,抽样频率要高于信号中最高频率的两倍,才不会失真,因此频谱中(fs/2,fs)为无用谱,故频域信号的定义域向量与值域向量都应该做减半处理
以sin(x)为例:
clear all; %
N=1024; %信号的抽样点数
fs=10; %抽样频率,高于信号中最高频率的2倍
t=(0:N-1)/fs;
f=(0:N-1)fs/N;
x=sin(2pit); %待处理信号sin(x)=sin(2πft),f=1hz
y=abs(fft(x)); %FFT后求模
f=f(1:N/2); %减半
y=y(1:N/2); %减半
subplot(2,1,1) %画图
plot(t(1:2fs),x(1:2fs)); %只画2个周期
subplot(2,1,2) %画图
plot(f,y);
以上就是关于如何用MATLAB画出小波的时域波形和频谱全部的内容,包括:如何用MATLAB画出小波的时域波形和频谱、用Matlab对实验波形进行频谱分析、Matlab中,什么叫瀑布图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)