1.3 序列的简单运算
1.3.1 信号平滑(三点滑动平均算法)
假定信号s[n]被噪声d[n]污染,得到了一个含有噪声的信号x[n]=s[n]+d[n]。若想对x[n]进行运算,产生一个合理逼近s[n]的信号y[n],因此对时刻n的样本附近的一些样本求平均,产生输出信号是一种简单有效的方法。例如,采用三点滑动平均算法的表达式如下:
% 三点滑动平均法
clf;
R = 51;
d = 0.8*(rand(R,1) - 0.5); % 产生随机噪声
m = 0:R - 1;
s = 2*m.*(0.9.^m); % 产生未污染的信号
x = s + d'; % 产生被噪音污染的信号
subplot(2,1,1);
plot(m,d,'r-',m,s,'g--',m,x,'b-');
xlabel('时间序号n');
ylabel('振幅');
legend('d[n]','s[n]','x[n]');
x1 = [0 0 x];
x2 = [0 x 0];
x3 = [x 0 0];
y = (x1 + x2 + x3)/3;
subplot(2,1,2);
plot(m,y(2:R + 1),'r-',m,s,'g--');
legend('y[n]','s[n]');
xlabel('时间序号n');
ylabel('振幅');
1.3.2 振幅调制信号的产生
振幅调制信号可用低频调制信号XL=cos(wLn)来调制高频正弦信号XL=COS(wHn),得到的信号y[n]为:
其中m称为调制指数,用来确保
(
1
+
m
∗
X
L
[
n
]
)
(1+m*X_L[n])
(1+m∗XL[n])在所有可能的n的情况下m都是正数。
% 振幅调制信号的产生
n = 0:100;
m = 0.4;
fH = 0.1;
fL = 0.01;
xH = sin(2*pi*fH*n);
xL = sin(2*pi*fL*n);
y = (1 + m*xL).*xH;
stem(n,y);
grid;
xlabel('时间序号n');
ylabel('振幅');