怎么用matlab画出信号频谱分析图

2024-05-12 04:23

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);我们可以画出信号的时域和频域。

怎么用matlab画出信号频谱分析图

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、最后运行模块,正弦波成为方波,如下图所示就完成了。

matlab怎样画出方波的频谱图?

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);好吧,我们可以绘制信号的时域和频域图像。

matlab 画频谱图

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】波形图如图所示:

    
最新文章
热门文章
推荐阅读