低通滤波器需求

Last updated on 2023-10-01 20:25

需求:

1.应用背景(用于理解我的需求):我要做的是机器学习中后门攻击的防御,

后门样本:给图片加小白块

后门攻击:后门样本 输入模型中训练,使得模型在测试阶段对 有小白块的图片 误分类。

防御:和正常样本相比,后门样本在频域范围会表现高频信号(该高频信号是白块产生的),我的目的就是通过低通滤波器将后门样本中的高频信号去掉。

image.png

2.需要做的:

  1. 图片选择:cifar10中随机10张图片(要是不能用,就随意的图片也行)
  2. 给图片加白块(白块大小和位置随意)
  3. 设计iir低通滤波器来 过滤掉 白块产生的高频信号
  4. 效果:不需要具体的效果,你可以告诉我参数,给我说怎么调参来呈现不同的效果。比如参数x,放大参数则过滤掉的高频信号越少,图片越清晰。缩小参数x,则过滤掉的高频信号越多,图片越模糊。

3.需要给我的:

  1. iir低通滤波器代码

  2. 参数的初始值如何设置

  3. 调参的参数

以下内容可看可不看,无论如何,十分感谢 ^_^

其他:自己学习相关资料设计低通滤波器的过程

​ 自己感觉不对劲的,哭了o(╥﹏╥)o,虽然不对劲,但是还是想写下来,表示自己学习了确实没有新头绪,所以才来找您帮我处理一下。当然如果有空,可以简单说一下哪里不对劲吗?

① 确定数字滤波器的性能指标 ​ 5个:采样频率$ f_{samp}、 $通带截止频率$$f_p$$、阻带截止频率$$f_s$$、通带衰减$$\alpha_p$$、阻带衰减$$\alpha_s$$ ② 对$f_p$、$f_s$归一化 ​ ${{\omega }_{p}}={{f}_{p}}/({{f}_{samp}}/2)$ ​ ${{\omega }_{s}}={{f}_{s}}/({{f}_{samp}}/2)$ ③ ${\omega }_{p}$、${\omega }_{s}$转换为模拟滤波器指标 ​ $\Omega_{\mathrm{s}}=\frac{2}{\mathrm{~T}} \tan \frac{\omega_{\mathrm{s}}}{2}$ ​ $\Omega_{\mathrm{p}}=\frac{2}{\mathrm{~T}} \tan \frac{\omega_{\mathrm{p}}}{2}$ ④ 计算出滤波器阶数$R$和3dB截止频率$\Omega_{\mathrm{c}}$ $\mathrm{R}=\lg \sqrt{\frac{10^{\alpha_{\mathrm{s}} / 10}-1}{10^{\alpha_{\mathrm{p}} / 10}-1}} / \lg \left(\frac{\Omega_s}{\Omega_p}\right)$ ​ $\Omega_c=\frac{\Omega_p}{(10^{\alpha_p / 10-1})^{1/2N}}$ ⑤ 计算低通滤波器的传递函数 ​ 低通滤波器的传递函数:$ \mathrm{H}_{(s)}=\frac{1}{\left(s-s_{1}\right)\left(s-s_{2}\right) \ldots\left(s-s_{R}\right)},其中R表示滤波器阶数 $ ​ 其中$s_k=\mathrm{e}^{\frac{j \pi}{2R}(2k-1+R)}×\Omega_c,其中k=1,2,3,...,R$,将(4)中求出的阶数$R$和$\Omega_{\mathrm{c}}$带入即可求得低通滤波器。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
clear;clc;
rawImg=imread('01.jpg'); %读取jpg图像
grayImg=rgb2gray(rawImg); %生成灰度图像
[row,col]=size(grayImg); %求图像长宽
normImgMartix=im2double(grayImg); % 图像数据进行归一化

% 设计IIR滤波器并分析相关指标
Fs=1000;%采样频率
Rp=1;Rs=20;
fp=150;fs=250;
wp=2*fp/Fs;ws=2*fs/Fs;%分别求出模拟通带截止频率wp和模拟阻带截止频率ws;
Wp=(2*Fs)*tan(wp/2);Ws=(2*Fs)*tan(ws/2);%分别求出数字通带截止频率Wp和数字阻带截止频率Ws;
[n,wn]=buttord(Wp,Ws,Rp,Rs,'s');%计算巴特沃什模拟滤波器的阶次;
[b,a]=butter(n,wn,'s');%计算Hs系数向量b1和a1;
[b0,a0]=bilinear(b,a,Fs);%双线性变换

[h,f1]=freqz(b0,a0,512,Fs);
figure;
subplot(2,1,1); plot(f1,20*log10(abs(h)));xlabel('频率/Hz');ylabel('幅值');title('巴特沃斯低通滤波器幅度特性');
subplot(2,1,2); plot(f1,angle(h));xlabel('频率/Hz');ylabel('幅值');title('巴特沃斯低通滤波器相频特性');

rawIIR=filter(b0,a0,normImgMartix);
figure;
subplot(121),imshow(grayImg);title('滤波前');
subplot(122),imshow(rawIIR);title('滤波后');

低通滤波器需求
https://luoynothing.github.io/2023/09/14/低通滤波器需求/
Author
John Doe
Posted on
2023-09-14 17:47
Updated on
2023-10-01 20:25
Licensed under