📄 e1094.m
字号:
%-----------------------------------------------------------------------
% Example 10.9.4: Helicopter Noise
%-----------------------------------------------------------------------
% Initialize
clc % clear screen
clear % clear variables
n = 1024; % number of samples
m = 3; % number of harmonics
fs = 512; % sampling frequency (Hz)
T = 1/fs; % sampling interval (sec)
blade = 32; % blade passage frequency (Hz)
r = 6; % random noise magnitude
df = fs/n; % frequency precision
t = zeros (n,1); % time
x = zeros (n,1); % noise
A = zeros (n,1); % magnitude
phi = zeros (n,1); % phase
f = zeros (n/2,1); % frequency
a = [3.2 2.1 1.3]'; % magnitudes
p = [1.8 -0.7 2.1]'; % phase angles
% Generate noise
fprintf ('Example 10.9.4: Helicopter Noise\n');
t = [0 : 1/T : (n-1)/T]';
x = randu (n,1,-r,r);
for i = 1 : n
for j = 1 : m
b = j*2*pi*blade*(i-1)*T;
x(i) = x(i) + a(j)*cos(b + p(j));
end
end
graphxy (t,x,'Helicoptor Noise','t (sec)','x(t)')
% Convert from dB sound measurments to amplitude
for i = 1 : n
x(i) = 10^(x(i)/20);
end
% Compute spectrum
[A,phi,f] = spectra (x,fs);
A(1) = 0; % remove average value
graphxy (f(1:n/2),A(1:n/2),'Magnitude Spectrum','f (Hz)','A')
%-----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -