数字信号处理Day2-小波基与规范正交化

我们有这么一张灰度图64*64

我们能够定义出4096个基,各自是某一位是0其它是1,在这样的情况下,假设我们传输图片,那么就相当于传输原始数据

如果传到一半,网络坏了。

于是,我们得到

我们能够计算原图像和这图像的差距

error = I - I_approx;

distance = sqrt(sum(sum(error.*error)))

distance =

713.5559

如果我们使用Haar基

function h = haar(N)

    % Assume N is power of 2
    h = zeros(N,N);
    h(1,1:N) = ones(1,N)/sqrt(N);

    for k = 1:N-1
        p = fix(log(k)/log(2));
        q = k-(2^p);
        k1 = 2^p;
        t1 = N/k1;
        k2 = 2^(p+1);
        t2 = N/k2;
        for i=1:t2
            h(k+1,i+q*t1) = (2^(p/2))/sqrt(N);
            h(k+1,i+q*t1+t2) = -(2^(p/2))/sqrt(N);
        end
    end

然后,我们看一下仅仅接受一半的图片能够恢复成什么样子,这个东西能够用到图片压缩(PCA降维)

clear all
close all
clc

% Load image
I = double(imread(‘camera.jpg‘));

% Arrange image in column vector
I = I(:);

% Generate Haar basis vector (rows of H)
H = haar(4096);

% Project image on the new basis
I_haar = H*I;

% Remove the second half of the coefficient
I_haar(2049:4096) = 0;

% Recover the image by inverting change of basis
I_haar = H‘*I_haar;

% Rearrange pixels of the image
I_haar = reshape(I_haar, 64, 64);

% Display image
figure
imshow(I_haar,[]);

效果还能够

error = I - I_haar;

distance = sqrt(sum(sum(error.*error)))

distance =

350.6765

Haar基是正交基

怎样将普通基变成正交基呢

线性代数中的拉格慕-施密特正交化即可

function E=gs_orthonormalization(V)
% V is a matrix where each column contains the vectors spanning the space of which we want to compute the orthonormal base
% E is a matrix where each column contains an ortho-normal vector of the base of the space

[numberLines,numberColumns]=size(V);

% U is a matrix containing the orthogonal vectors (non normalized)
U=zeros(numberLines,numberColumns);

for indexColumn=1:numberColumns
    U(:,indexColumn)=V(:,indexColumn);

    for index=1:(indexColumn-1)
        R(index,indexColumn) =U(:,index)‘*V(:,indexColumn);
        U(:,indexColumn)=U(:,indexColumn)-R(index,indexColumn)*U(:,index);
    end

    R(indexColumn,indexColumn)=norm(U(:,indexColumn));
    U(:,indexColumn)=U(:,indexColumn)./R(indexColumn,indexColumn);

end

E=U;

return 

数字信号处理Day2-小波基与规范正交化

时间: 2024-10-28 11:20:19

数字信号处理Day2-小波基与规范正交化的相关文章

大牛讲解信号与系统以及数字信号处理

转自人人网 第一课 什么是卷积 卷积有什么用 什么是傅利叶变换 什么是拉普拉斯变换 引子很多朋友和我一样,工科电子类专业,学了一堆信号方面的课,什么都没学懂,背了公式考了试,然后毕业了. 先说"卷积有什么用"这个问题.(有人抢答,"卷积"是为了学习"信号与系统"这门课的后续章节而存在的.我大吼一声,把他拖出去枪毙!) 讲一个故事:张三刚刚应聘到了一个电子产品公司做测试人员,他没有学过"信号与系统"这门课程.一天,他拿到了一个产

转载--理解数字信号处理的三把钥匙

原址 在数字信号处理大厦中,有许许多多的小房间,有的门上写着"DFT",有的门上写着"滤波",有的门上写着"卷积",有的门上写着"相关",等等.每一个房间都藏着知识的秘密,每一个房间都要用属于自己的钥匙才能打开.但就整体上来说,理解数字信号处理有三把"万能"的钥匙:时域与频域的相互切换.向量和MATLAB软件.充分应用这三把钥匙,能为深入理解数字信号处理提供有力的帮助. 1.时域与频域的相互切换 深入理解数

FS,FT,DFS,DTFT,DFT,FFT的联系和区别 数字信号处理

DCT变换的原理及算法 文库介绍 对于初学数字信号处理(DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. 学习过<高等数学>和<信号与系统>这两门课的朋友,都知道时域上任意连续的周期信号可以分解为无限多个正弦信号之和,在频域上就表示为离散非周期的信号,即时域连续周期对应频域离散非周期的特点,这就是傅里叶级数展开(FS),它用于分析连续周期信号. FT是傅里叶变换,它主要用于分析连续非周期信号,由于信号是非周期的,它必包含了各种频率的信号,

数字信号处理MATLAB简单序列

数字信号处理应用的几个基本序列: 1 单位样本序列 function mainImseq() clc clear disp('生成抽样序列'); y=imseq(1,1,5); %调用样本函数,此时序列下标以1开头(1~5之间5个数,下标为1的抽样值为1) %子函数imseq:抽样函数 function [x,n]=imseq(n0,n1,n2) n=[n1:n2]; x=[(n-n0) ==0 ] 2 单位阶越序列 产生u(n) function mainImseq() clc clear d

《数字信号处理》 学习总结

21世纪属于数字化信息时代,很有幸学习了一些数字信号的基础内容,尽管还不清楚这些理论基础的应用,但他所应用的技术给了自己很多积累也让自己感受到了人类智慧的伟大,本文章主要论述对高西全和丁玉美编著的<数字信号处理>简要学习总结. 上图为对本书学习的主要内容, 信号有模拟信号,时域离散信号和数字信号之分,主要讨论的是离散信号和离散系统,为什么数字信号处理却讨论的是时域离散信号呢?原因是数字信号与离散信号的区别,数字信号存在量化误差,离散信号的特性研究相对容易. [分析方式] 任何事物都会有不同的分

数字信号处理与音频处理(使用Audition)

#include<iostream> #include<string> #include<stack> using namespace std; #define n 8 stack <int *> s; int * createMaze(){//初始化迷宫 int i,j; int * a; a=new int[n*n]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ *(a+n*i+j)=-1;//不设置为0的原因是超

数字信号处理--傅里叶变换

原文出处: 韩昊 1 2 3 4 5 6 7 8 9 10 作 者:韩 昊 知 乎:Heinrich 微 博:@花生油工人 知乎专栏:与时间无关的故事 谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师. 转载的同学请保留上面这句话,谢谢.如果还能保留文章来源就更感激不尽了. ——更新于2014.6.6,想直接看更新的同学可以直接跳到第四章———— 我保证这篇文章和你以前看过的所有文章都不同,这是 2012 年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两

数字信号处理Day1自制电子音乐

第一天的课程感觉比較简单,主要介绍Karplus-Strong Algorithm 给出方程 y[n]=αy[n?M]+x[n], x[n]是输入,M是延迟,α是衰弱系数 我们要衰减D次,总的採样数就是D*M 以下是最直接的实现 关于x = x(:).';的语法是这种,这是一个转置,可是是非共轭转置,假设是x',那么1+i就成了1-i function y = ks_loop(x, alpha, D) % Length of the output signal must be larger th

傅立叶变换的深入理解 转载 数字信号处理

傅立叶变换的深入理解 2007年10月05日 星期五 16:41 专题讨论四:关于傅里叶变换的讨论[精彩] 有奖征集:大家讨论一下傅里叶变换相关的内容: 1 变换的目的,意义,应用. 2 傅里叶级数与傅里叶变换的差别和联系 3 连续傅里叶变换,离散时间傅里叶变换,离散傅里叶变换,序列的傅里叶变换,各自的定义,差别,联系. 3 高速傅里叶变换的实质,经常使用的算法之间的差别和联系,各自的优势. 4 fft的应用讨论: 1.变换是时间变量函数变成相应变换域的某种变量函数,这样使运算简单,处理方便.变