1. 怎么用matlab画出信号频谱分析图
1.假设信号域为四舍五入,向量t为n维向量,则信号的离散采样周期为Ts=1/fs=四舍五入/(n-1),其中fs为采样频率。
2.从上面的离散傅里叶公式,我们可以知道在使用FFT函数之后,我们仍然得到一个n维向量。
3.频域长度定义为lenf,满足lenf=(N-1)*Ts,实体lenf=((N-1)*(N-1)/N)/N。当N很大时,Lenf=fs。
4.到目前为止,在频域内得到的向量为f=(0:n-1)/(n-1)*lenf=(0:n-1)*fs/n。根据奈奎斯特采样定理,采样频率高于信号中最高频率的两倍,因此不存在失真。
5.因此,在谱中(fs/2,fs)是无用谱,所以域向量和频域信号的距离向量应该减半。F=F(1,N/2);Y=abs(FFT(x));Y=Y(1。n/2);我们可以画出信号的时域和频域。
2. matlab 作出信号频谱图
先对信号等时间采样得到一组时域信号然后做傅里叶变换。特殊情况下可以看出数据点所满足的解析式,使用拟合,然后对拟合得到的函数进行傅里叶变换,用matlab的fourier函数即可。一般情况下得到的离散的数据点没有明显的拟合函数,这时候可以考虑用离散傅里叶变换。matlab中的fft函数可以完成这个功能。
由于一般情况中的fft更具有应用性,下面着重举例说明fft。
引用一段matlab帮助文件提供的代码作说明:(%后面是中文或英文注释)
clc;clear;
Fs = 1000; % Sampling frequency,取样频率
T = 1/Fs; % Sample time,采样时间间隔
L = 1000; % Length of signal,总时间
t = (0:L-1)*T; % Time vector,时间向量
% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid 信号函数,提供50Hz和120Hz的主频率
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t)); % Sinusoids plus noise 信号函数加上模拟的噪音
plot(Fs*t(1:100),y(1:100)) % 信号图
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (milliseconds)')
NFFT = 2^nextpow2(L); % Next power of 2 from length of y 扩充采样点,由1000变为1024
Y = fft(y,NFFT)/L;%除一个L,使归一化,可以不除,不影响对主频率的判断
f = Fs/2*linspace(0,1,NFFT/2+1);%这里除以2是因为fft的对称性,因此只画一半
% Plot single-sided amplitude spectrum.
figure
plot(f,2*abs(Y(1:NFFT/2+1))) %乘2是为了归一化,因为右边一半的fft图像没画;不乘,不影响对主频率的判断
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
这行代码“f = Fs/2*linspace(0,1,NFFT/2+1);”如果不理解可以写成
“f = Fs*linspace(0,1,NFFT);”然后把后面的plot行的乘2去掉,NFFT/2+1也改成NFFT,这就等于没有折叠的状态。
至于为什么对称、为什么表达式是这样,就需要去做DFT数学推导了,这里不做推导。
得图如下:
折叠了的fft图。在50与120Hz处有明显的主峰。
未折叠的fft图。右边两个峰值并没有实际意义,只是由于对称性而得到的。
3. matlab怎样画出方波的频谱图?
1、首先在电脑中打开MATLAB软件,输入simulink启动仿真,如下图所示。
2、然后输入zero添加采样器,如下图所示。
3、然后输入sin添加正弦波,如下图所示。
4、接着输入scope添加示波器,如下图所示。
5、然后连接模块,双击各个模块,设置参数。
6、最后运行模块,正弦波成为方波,如下图所示就完成了。
4. matlab 画频谱图
1、假设该信号的域被借出并且向量t是N维向量,则该信号离散化的采样周期是Ts = 1 / fs = lent /(N-1),其中fs是采样频率。
2、从上面的离散傅立叶公式,我们可以知道在使用fft函数之后,我们仍然得到一个N维向量。
3、频域的长度定义为lenf,其满足lent =(N-1)* Ts,solid lenf =((N-1)*(N-1)/ N)/ lent = fs *(N-1) )/ N.当N很大时,lenf = fs。
4、到目前为止在频域中获得的矢量是f =(0:N-1)/(N-1)* lenf =(0:N-1)* fs / N.根据奈奎斯特采样定理,采样频率高于信号中最高频率的两倍,因此不会失真。
5、因此,频谱中的(fs / 2,fs)是无用的频谱,因此域矢量和频域信号的范围矢量应该减半。即:f = f(1,N / 2); y = abs(fft(x)); y = y(1. N / 2);好吧,我们可以绘制信号的时域和频域图像。
5. matlab 画频谱图
1、假设该信号的域被借出并且向量t是N维向量,则该信号离散化的采样周期是Ts=1/fs=lent/(N-1),其中fs是采样频率。
2、从上面的离散傅立叶公式,我们可以知道在使用fft函数之后,我们仍然得到一个N维向量。
3、频域的长度定义为lenf,其满足lent=(N-1)*Ts,solidlenf=((N-1)*(N-1)/N)/lent=fs*(N-1))/N.当N很大时,lenf=fs。
4、到目前为止在频域中获得的矢量是f=(0:N-1)/(N-1)*lenf=(0:N-1)*fs/N.根据奈奎斯特采样定理,采样频率高于信号中最高频率的两倍,因此不会失真。
5、因此,频谱中的(fs/2,fs)是无用的频谱,因此域矢量和频域信号的范围矢量应该减半。即:f=f(1,N/2);y=abs(fft(x));y=y(1.N/2);好吧,我们可以绘制信号的时域和频域图像。
6. 如何在MATLAB中绘制一下信号的波形图?
【1】 MATLAB一般绘制公式对应的图形是二维的,例如二维绘图函数,三维绘图原理类似。
常用的二维绘图函数:
plot(x,y,‘s’)
x,y是向量,分别表示点集的横坐标和纵坐标,s表示线型、颜色、点形
•title(‘加图形标题');
•xlabel('加X轴标记');
•ylabel('加Y轴标记');
•text(X,Y,'添加文本');
•grid on 加网格线
•text(x,y,‘string’) adds the string in quotes(引号) to the location specified by thepoint (x,y).
•\bullet ·
•\pi π
•\rightarrow 右箭头
•EdgeColor -- Color of the rectangle's edge(none by default).
•‘EdgeColor’ ,‘red’
【2】波形图如图所示: