基于MATLAB的卷积码Viterbi译码性能仿真 联系客服

发布时间 : 星期日 文章基于MATLAB的卷积码Viterbi译码性能仿真更新完毕开始阅读4a2864bafd0a79563c1e72e8

姓名:孙凯 学号:12009388 指导老师:江小平

专业年级:电信学院09级通信与信息系统专业

小波分析课后习题

? 平时作业15:(选做)实现离散小波变换,绘出变换结果图。采用B2或B3滤波器,对Mallat数据进行正反离散小波变换,并绘出图形。其中:

离散小波变换的测试数据(mallat.dat)格式为ASCII码文本,内容为: n // 数据总数(整数,以下为浮点数) x0 dx // 采样起点值与间隔(可用于画图) d1 // 以下为n个采样数据 d2 ... Dn

2滤波器对256*256lena 进行滤波 clc clear all

IMG=imread(' cameraman.jpg'); subplot(1,3,1);imshow(IMG);title('原图'); IMGa=double(IMG);

%%%%%%%%%%%%%%%%%%%% 低通滤波 %定义一个256*266的矩阵(加了10列0向量) G=[zeros(256,5) IMGa zeros(256,5)]; sum=zeros(256,256); h=[0.125 0.375 0.375 0.125 ]; for k=1:length(IMG) for j=1:length(IMG) for i=1:length(h)

sum(k,j)=sum(k,j)+G(k,j+i-1)*h(i); end end end

subplot(1,3,2);imshow(uint8(sum));title('低通滤波后图像');

%%%%%%%%%%%%%%%%%%%% 高通滤波 g=[0.0061 0.0869 0.5798 -0.5798 -0.0869 -0.0061]; clear k clear j clear i

SUM=zeros(256,256); for k=1:length(IMG) for j=1:length(IMG) for i=1:length(g)

SUM(k,j)=SUM(k,j)+G(k,j+i-1)*g(i); end end end

1

%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% 姓名:孙凯 学号:12009388 指导老师:江小平

专业年级:电信学院09级通信与信息系统专业

subplot(1,3,3);

imshow(uint8(SUM));title('高通滤波后图像');

实验结果如下图所示:

? 平时作业16:(必做)实现二维哈尔小波变换的图像编码算法

程序如下:

%一维haar小波分解 function y=haardec(c,h) %y=haardec(c,h) y=c; sqrt2=sqrt(2); h=h/2; for i=1:h

y(i)=(c(2*i-1)+c(2*i))/sqrt2; y(h+i)=(c(2*i-1)-c(2*i))/sqrt2; end

%二维非标准Haar小波规格化分解后图像重构程序(多级) function a=nstdhaarrec2(c)

%输入:x 载入的二维图像像数值

a=double(x); %输出:a重构后生成的图像像素数值矩阵,大小与x相同 level=1; %分解重构层数

rorc=0; %作行变换(1)或列变换(2),默认为0,列行变换都做 h=size(x,2); %重构的矩阵块大小,默认为整个x矩阵的变换 h1=h;

h2=h*(2^(level-1)); while h1<=h2 if rorc==1 for j=1:h1

tempcol=a(1:h1,j)';

a(1:h1,j)=haarrec(tempcol,h1)';

2

姓名:孙凯 学号:12009388 指导老师:江小平

专业年级:电信学院09级通信与信息系统专业

end else

if rorc==2 for i=1:h1

temprow=a(i,1:h1);

a(i,1:h1)=haarrec(temprow,h1); end else

for i=1:h1

temprow=a(i,1:h1);

a(i,1:h1)=haarrec(temprow,h1); end for j=1:h1

tempcol=a(1:h1,j)';

a(1:h1,j)=haarrec(tempcol,h1)'; end end end h1+h1*2; end %

function y=haarrec(x,h)

%haarrec 1-D haar reconstruct program c=x; h1=h/2; for i=1:h1

y(2*i-1)=(c(i)+c(h1+1))/sqrt(2); y(2*i)=(c(i)-c(h1+i))/sqrt(2); end

%二维Haar小波非标准规格化分解程序(多级分解) function[a,lt]=nasdhaardec2(x)

%作用:使用Haar小波对每一行和每一列像素值进行小波变换 %输入:x 载入的二维图像像数值 x=imread('lena.bmp');

a=double(x); %输出: a分解后数值矩阵,大小与x相同 t=1; %记录实际分解次数 sX=size(x);

level=1; %小波分解次(级)数设定值(如果设定值超过最高可分解次数,按最高分解次数分解)

h=sX(2); %分解的矩阵块大小,默认为整个x矩阵的变换 rorc=0; %做行变换(1)或列变换(2),默认为0 lt=level;

3

姓名:孙凯 学号:12009388 指导老师:江小平

专业年级:电信学院09级通信与信息系统专业

while and(h>1,t<=level) if rorc==1 for row=1:h

a(row,:)=haardec(a(row,:),h); end else

if rorc==2 for col=1:h

temp=haardec(a(:,col)',h); a(:,col)=temp'; end else

for row=1:h

a(row,:)=haardec(a(row,:),h); end for col=1:h

temp=haardec(a(:,col)',h); a(:,col)=temp'; end end end h=h/2; t=t+1; end

if and(h<=1,lt~=t-1) lt=t-1; end

codeword=codeword(simbols); simbols=simbols-1; simbols=simbols'; for i=1:205

Q{i,1}=simbols(i); end

C=[Q codeword];

4