📄 matlab自相关函数.txt
字号:
matlab编程的求解h(n)的自相关函数指教!
%*****求解h(n)的自相关函数*****%
%*****h(t)=e^(-at2)*sin(2Лft)
%*****R x(n)=E(x(m)x(m-n))自相关函数定义
k=length(h);
hk=fft(h,2*k);
h1k=fft(h,2*k);
rh=real(ifft(conj(hk).*h1k));
rh=[rh(k+2:2*k) rh(1:k)];
h=(-k+1):(k-1);
subplot(2,1,2);%h(n)自相关函数图象位置
stem(h,rh,'b.')
xlabel('rh(m)');
请问rh=real(ifft(conj(hk).*h1k));
rh=[rh(k+2:2*k) rh(1:k)]; 是什么意思啊 看不懂哦
谢谢!
如果一个序列,一方面它是可以预先确定的,并且是可以重复地生产和复制的;一方面它又具有某种随机序列的随机特性(即统计特性),我们便称这种序列为伪随机序列。因此可以说,伪随机序列是具有某种随机特性的确定的序列。它们是由移位寄存器产生确定序列,然而他们却具有某种随机序列的随机特性。因为同样具有随机特性,无法从一个已经产生的序列的特性中判断是真随机序列还是伪随机序列,只能根据序列的产生办法来判断。伪随机序列系列具有良好的随机性和接近于白噪声的相关函数,并且有预先的可确定性和可重复性。这些特性使得伪随机序列得到了广泛的应用,特别是在CDMA系统中作为扩频码已成为CDMA技术中的关键问题。特性为序列中两种元素出现的个数大致相等。
如果把n个元素连续出现叫做一个长度为n的元素游程,则序列中长度为n的元素游程比长度为n+1的元素游程多一倍。序列有类似白噪声的自相关函数(δ函数)
下面是一个MATLAB的伪随机序列产生程序:
function [m_out]=m_sequence(fbconnection,m,chu)
len=length(fbconnection);
n=2^len-1; %序列长度
register=chu; %初态
fan=0;
for i=1:n*m % i循环一次输出一个m_out
m_out(i)=register(len);
for k=1:len % k循环累加反馈
fan=fan+fbconnection(k)*register(k);
end
fan=mod(fan,2); % 反馈系数
newregister(1)=fan;
for j=2:len % j循环移位
newregister(j)=register(j-1);
end
register=newregister;
fan=0;
end
/////////////////下面是一个调用这个函数的程序
fbconnection=[0 1 0 0 1 1 0 1]; %特征多项式
m=1; %输出周期个数
t=length(fbconnection); %序列长度
chu=[zeros(1,t-1),1]; %初态
m_out=m_sequence(fbconnection,m,chu); %输出m序列 m_sequence为序列产生函数
本程序先生成一个“Blocks”信号,然后加上高斯白噪声,再用'db3'小波进行分解,
% 以说明信号和噪声在各个尺度上的表现。
clear all;
% 生成“Blocks”信号
M = 1/1024;
N = 1/M;
t =0:M:1-1/1024;
TPoint = [0.1,0.13,0.15,0.23,0.25,0.40,0.44,0.65,0.76,0.78,0.81];
h = [4,-5,3,-4,5,-4.2,2.1,4.3,-3.1,2.1,-4.2];
[aaa,TSize] = size(TPoint);
FBlock = zeros(N,1);
for j = 1:N
for i = 1:TSize
if (t(j) - TPoint(i))> 0
sgnt = 1;
elseif (t(j) - TPoint(i))< 0
sgnt = -1;
else
sgnt =0;
end
FBlock(j) = FBlock(j) +h(i)*(1+sgnt)/2;
end
end
%sig=FBlock';
subplot(321)
plot(FBlock)
%title(' 原信号');
grid on;
% 加上白噪声
sigma=0.1;
sig= GWNoisy(FBlock',sigma);
subplot(323)
plot(sig)
%title(' 带噪信号');
grid on;
% 小波分解
[c,l]=wavedec(sig,2,'db3');
ca2=appcoef(c,l,'db3',2);
cd2=detcoef(c,l,2);
cd1=detcoef(c,l,1);
subplot(322)
plot(cd1)
subplot(324)
plot(cd2)
subplot(326)
plot(ca2)
dl=length(cd2)+length(cd1);
c1=[ca2,zeros(1,dl)];
y=waverec(c1,l,'db3');
subplot(325)
plot(y)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -