|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6 @3 \/ T' I4 P% `: D) ?上篇:MATLAB —— 信号处理工具箱之fft的介绍和相关案例分析介绍了MATLAB信号处理工具箱中的信号变换 fft 并分析了一个案例,就是被噪声污染了的信号的频谱分析。
! P+ d. H# h& f! k0 B' q5 n5 D; H# F% r0 S# p5 S
这篇博文继续分析几个小案例:& T* E: k3 w# O( Q8 c; `7 Z; w% S6 g
: U! d( n( f. q# q( S6 Z
Gaussian Pulse
$ @4 o) O* U2 q这个案例是将高斯脉冲从时域变换到频域,高斯脉冲的信息在下面的程序中都有注释:' \7 `: F8 J) a, \
- V6 r3 `5 z0 e/ W
- clc
- clear
- close all
- % Convert a Gaussian pulse from the time domain to the frequency domain.
- %
- % Define signal parameters and a Gaussian pulse, X.
- Fs = 100; % Sampling frequency
- t = -0.5:1/Fs:0.5; % Time vector
- L = length(t); % Signal length
- X = 1/(4*sqrt(2*pi*0.01))*(exp(-t.^2/(2*0.01)));
- % Plot the pulse in the time domain.
- figure();
- plot(t,X)
- title('Gaussian Pulse in Time Domain')
- xlabel('Time (t)')
- ylabel('X(t)')
- % To use the fft function to convert the signal to the frequency domain,
- % first identify a new input length that is the next power of 2 from the original signal length.
- % This will pad the signal X with trailing zeros in order to improve the peRFormance of fft.
- n = 2^nextpow2(L);
- % Convert the Gaussian pulse to the frequency domain.
- %
- Y = fft(X,n);
- % Define the frequency domain and plot the unique frequencies.
- f = Fs*(0: (n/2))/n;
- P = abs(Y/n);
- figure();
- plot(f,P(1:n/2+1))
- title('Gaussian Pulse in Frequency Domain')
- xlabel('Frequency (f)')
- ylabel('|P(f)|')
0 e$ K& ^) g, ?5 `6 T/ r
2 u: s E. \, u. ~6 S0 x/ i
^( P$ ?( s. o高斯脉冲在时域的图像:
3 l; F8 t6 _2 E
+ K/ k# s( W0 r9 Y, W& M4 _
3 _" o, Q- Y: `
6 t b5 e& S: L+ P% z* W高斯脉冲在频域的图像:! u* N7 k8 j; F0 S. W' D. ^4 D
_$ G6 x# O* ]0 {9 ~& d; E
. N: l; y0 g1 r2 V3 l8 p+ R: ?* g5 f& @
" c+ e- l. r" Y+ U9 S9 B) n; s: K7 d3 t, j- T9 T7 u0 T9 T
Cosine Waves
[. Q3 M' ^& M8 C2 m
* F8 I) {* e) i! R6 W这个例子比较简单,就是不同频率的余弦波在时域以及频域的比较:
/ I H, Q8 R) i8 K3 @& B/ ]& c3 ~, i, f$ ]
- clc
- clear
- close all
- % Compare cosine waves in the time domain and the frequency domain.
- %
- % Specify the parameters of a signal with a sampling frequency of 1kHz and a signal duration of 1 second.
+ b, q1 ~. T, o P$ n M8 ^8 w- Fs = 1000; % Sampling frequency
- T = 1/Fs; % Sampling period
- L = 1000; % Length of signal
- t = (0: L-1)*T; % Time vector
- % Create a matrix where each row represents a cosine wave with scaled frequency.
- % The result, X, is a 3-by-1000 matrix. The first row has a wave frequency of 50,
- % the second row has a wave frequency of 150, and the third row has a wave frequency of 300.
" K4 [) ]) {' A. A% y: @+ V- x1 = cos(2*pi*50*t); % First row wave
- x2 = cos(2*pi*150*t); % Second row wave
- x3 = cos(2*pi*300*t); % Third row wave
- ( p) m/ s: [# _2 A/ F. f
- X = [x1; x2; x3];
- % Plot the first 100 entries from each row of X in a single figure in order and compare their frequencies.
- r; f- t3 ~8 G5 S6 ?; ?
- figure();
- for i = 1:3
- subplot(3,1,i)
- plot(t(1:100),X(i,1:100))
- title(['Row ',num2str(i),' in the Time Domain'])
- end
- ) k! x) H8 n6 r3 ~. g( z( N2 Y
- % For algorithm performance purposes, fft allows you to pad the input with trailing zeros.
- % In this case, pad each row of X with zeros so that the length of each row is the next higher power of 2 from the current length.
- % Define the new length using the nextpow2 function.
7 A A2 s# g) A( R- n = 2^nextpow2(L);
- % Specify the dim argument to use fft along the rows of X, that is, for each signal.
- ( `' k+ Y5 ?; ~* f
- dim = 2;
- % Compute the Fourier transform of the signals.
- * F, @$ i1 w4 S9 k
- Y = fft(X,n,dim);
- % Calculate the double-sided spectrum and single-sided spectrum of each signal.
; W% j& w* t( q6 G% b- P2 = abs(Y/L);
- P1 = P2(:,1:n/2+1);
- P1(:,2:end-1) = 2*P1(:,2:end-1);
- % In the frequency domain, plot the single-sided amplitude spectrum for each row in a single figure.
- 4 i: o; V' L) I5 h1 O- B! f
- figure();
- for i=1:3
- subplot(3,1,i)
- plot(0: (Fs/n): (Fs/2-Fs/n),P1(i,1:n/2))
- title(['Row ',num2str(i),' in the Frequency Domain'])
- end$ p, f$ r& L+ V3 O" J7 U% v
! N" @4 a6 S- a( `0 i9 G
# P2 G8 |5 v+ b0 S下图是频率为50Hz,150Hz以及300Hz的余弦波在时域的图像:4 h& ^8 T- W w9 i( m
& K; Y) D% ?0 u1 S) ?2 N
: x* u {0 k. a$ H' F" U1 U1 m8 o b) h
下图分别为其fft:# u4 |; @( |4 C3 F
4 F$ g3 d1 X* K. t% |
9 L/ e" K* `) Y% [, s% M
6 S9 ~5 p5 K; A
从频域图中可以清晰的看到它们的频率成分位于何处。4 w L: }: w% t7 s7 A' y' t3 l
- m% B+ Z2 o- M& E' S. c7 i' Y
' Z# S" f9 q8 j& Q. h |
|