【数字信号处理】期末综合实验,离散时间信号与系统的时域分析,离散信号 Z 变换,IIR 滤波器的设计与信号滤波,用窗函数法设计 FIR 数字滤波器
关注作者了解更多
我的其他CSDN专栏
过程控制系统
工程测试技术
虚拟仪器技术
可编程控制器
工业现场总线
数字图像处理
智能控制
传感器技术
嵌入式系统
复变函数与积分变换
单片机原理
线性代数
大学物理
热工与工程流体力学
数字信号处理
光电融合集成电路技术
电路原理
模拟电子技术
高等数学
概率论与数理统计
数据结构
C语言
模式识别原理
自动控制原理
数字电子技术
关注作者了解更多
资料来源于网络,如有侵权请联系编者
目录
实验一 离散时间信号与系统的时域分析
一、实验目的
二、实验原理
三、实验过程记录
四、结果分析
实验二 离散信号 Z 变换
一、实验目的
二、实验原理
三、离散系统的频率特性
实验三 IIR 滤波器的设计与信号滤波
1、实验目的
2.实验原理
3、实验步骤及内容
实验代码
6实验报告要求
实验四 用窗函数法设计 FIR 数字滤波器
1、实验目的
2、实验原理
3、实验步骤及内容
6实验要求
实验五 用 FFT 作谱分析
1实验目的
2、实验原理
3、实验步骤及内容
实验数据记录
6实验报告要求
实验 6 综合实验
1实验目的
2、实验内容 (三选一)
3实验报告要求
实验一 离散时间信号与系统的时域分析 1
实验二 离散信号 Z 变换 7
实验三 双线性变换法设计 IIR 数字滤波器 19
实验四 用窗函数法设计 FIR 数字滤波器 19
实验五 用 FFT 作谱分析 19
实验六 综合实验 25
实验一 离散时间信号与系统的时域分析
-
一、实验目的
-
1.掌握离散时间信号与系统的时域分析方法。
2.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系 统响应进行频域分析。
3.熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。
二、实验原理
实现2.离散时间系统的单位脉冲响应3连续时间信号的采样,绘制单位脉冲序列,绘制单位阶跃序列,绘制理想采样序列,绘制正弦序列,分析特性
-
三、实验过程记录
- 1单位脉冲序列
-
clear all; clc; n1=-5;n2=5;n0=0; n=n1:n2;%自变量 x=[n==n0];%因变量,利用大括号判断里面的表达式是否成立,如果成立则函数有效,有数值 %否侧函数无效,没有数值 stem(n,x,'filled');%利用filled绘制实心火柴梗 axis([n1,n2,0,1.1*max(x)]);%绘制坐标系 xlabel('(n)');ylabel('幅度x(n)'); title('单位脉冲序列');
2单位冲激序列
clear all
n = 40;
x = ones(1,n);
xn = 0:n-1;
subplot(211);
stem(xn,x);
grid on
axis([-1 51 0 1.1]);
title('单位阶跃序列u(n)')
ylabel('u(n)');
xlabel('n');
x = [zeros(1,10),1,ones(1,29)];
subplot(212);
stem(xn,x);
grid on
axis([-1 51 0 1.1]);
title('单位跃迁序列u(n-10)')
ylabel('u(n-10)');
xlabel('n');
3正弦序列
clear all
n = 0:59;
x = sin(pi/7*n);
stem(n,x);
ylabel('x(n)');
xlabel('n');
title('正弦序列')
axis([0 40 -1.5 1.5]);
grid on;
4理想采样序列
%绘制理想采样信号序列
%给定信号参数
A = 200;
alpha = 50*pi;
T = 1/10000;
Omega = 260*pi;
n = 0:1:100;
%计算信号在不同时刻的值
x = A.*exp(-alpha.*n.*T).*cos(Omega.*T.*n);
figure %绘制理想采样信号序列
stem(x,'g') %绘制单位抽样序列
%修改时间坐标值,保证信号0时刻的值为1,添加图的坐标含义标题等信息
set(gca, 'XTick', 1:101);
set(gca,'XTickLabel',0:100);
title('(d) Desired sampled signal')
grid on
xlabel('Time index n')
ylabel('Amplitude')
axis([1 101 -200 200]) %规范坐标轴范围
hold on
%给定信号参数
A = 100;
alpha = 0.4;
T = 1/1000;
Omega = 700*pi;
n = 0:100;
%计算信号在不同时刻的值
xx = A.*exp(-alpha.*n.*T).*cos(Omega.*T.*n);
%绘制修改参数后的理想采样信号序列
stem(xx,'b') %绘制单位抽样序列
改变参数A=1,a =0.4, W =700p ,产生理想采样信号序列 x n( ) 。
代码:
%给定信号参数
A = 1;
alpha = 0.4;
T = 1/10000;
Omega = 700*pi;
n = 0:1:100;
%计算信号在不同时刻的值
x = A.*exp(-alpha.*n.*T).*cos(Omega.*T.*n);
figure %绘制理想采样信号序列
stem(x,'g') %绘制单位抽样序列
%修改时间坐标值,保证信号0时刻的值为1,添加图的坐标含义标题等信息
set(gca, 'XTick', 1:101);
set(gca,'XTickLabel',0:100);
title('(d) Desired sampled signal')
grid on
xlabel('Time index n')
ylabel('Amplitude')
axis([1 101 -200 200]) %规范坐标轴范围
hold on
%给定信号参数
A = 100;
alpha = 0.4;
T = 1/1000;
Omega = 700*pi;
n = 0:100;
%计算信号在不同时刻的值
xx = A.*exp(-alpha.*n.*T).*cos(Omega.*T.*n);
%绘制修改参数后的理想采样信号序列
stem(xx,'b') %绘制单位抽样序列
>>结果截图
5.实指数序列
clear all
n = 0:20;
x1 = 1.3.^n;
x2 = (-1.3).^n;
x3 = 0.8.^n;
x4 = (-0.8).^n;
subplot(221)
stem(n,x1,'fill')
grid on;
ylabel('x1(n)');
xlabel('n');
title('x1 = 1.6^n')
subplot(222)
stem(n,x2,'fill')
grid on;
ylabel('x2(n)');
xlabel('n');
title('x2 = (-1.6)^n')
subplot(223)
stem(n,x3,'fill')
grid on;
ylabel('x3(n)');
xlabel('n');
title('x1 = 0.8^n')
subplot(224)
stem(n,x4,'fill')
grid on;
ylabel('x4(n)');
xlabel('n');
title('x1 = 1(-0.8)^n')
四、结果分析
分别绘制了单位脉冲序列,单位阶跃序列,正弦序列,理想采样的指数正弦序列,改变参数后的理想采样正弦序列,实指数序列等图像
实验二 离散信号 Z 变换
-
一、实验目的
1、熟悉离散信号 Z 变换的原理及性质
2、熟悉常见信号的 Z 变换
3、了解正/反 Z 变换的 MATLAB 实现方法
4、了解离散信号的 Z 变换与其对应的理想抽样信号的傅氏变换和拉氏变换之间的关系
5、了解利用 MATLAB 实现离散系统的频率特性分析的方法
二、实验原理
实验过程记录
一、正/反 Z 变换
代码:
clc;
clear;
close all;
%%
% Example 1 for the Z transform
syms n % Define the temporal independent variable represented by the mathmatical symbols.
f = 0.5^n; % Define the sequence in the time domain.
Fz = ztrans(f); % Perform z transform based on the function ztrans.
disp(Fz); % Print the output.
%%
% Example 2 for the Z transform
syms z % Define the independent variable in the complex frequency domain.
Fz = 2*z/(2*z - 1); % Define the z transform in the complex frequency domain.
f = iztrans(Fz); % Perform inverse z transform based on the function iztrans.
disp(f); % Print the output
%%
% Example 3 for the Z transform
syms n % Define the independent variable
hn = kroneckerDelta(n, 1) + kroneckerDelta(n, 2) + kroneckerDelta(n,3); %Define the sequence in the time domain
disp(hn)
Hz = ztrans(hn); % Perform the z transform
disp(Hz)
Hz = simplify(Hz); % Simplify the expression of the H(z)
disp(Hz)
运行结果:
z/(z - 1/2)
(1/2)^n
kroneckerDelta(n - 1, 0) + kroneckerDelta(n - 2, 0) + kroneckerDelta(n - 3, 0)
1/z + 1/z^2 + 1/z^3
(z^2 + z + 1)/z^3
-
三、离散系统的频率特性
-
代码:
%Example 4
a = [1,0]; % Define the coefficients of the denominator polynomial
b = [1,-0.5]; % Define the coefficients of the numerator polynomial
[H,omega] = freqz(b,a,10); % Compute the frequency response of the transfer function
disp(H)
disp(omega)
%%
%Example 5
a = [1,0]; % Define the coefficients of the denominator polynomial
b = [1,-0.5]; % Define the coefficients of the numerator polynomial
[H,omega] = freqz(b,a,200,'whole'); % Compute the frequency response of the transfer function
disp(H)
disp(omega)
Ha = abs(H); % Amplitude
Ph = angle(H); % Phase
运行结果:
求点代码如上
绘图代码
figure
subplot(2,1,1)
plot(omega,Ha)
hold on
set(gca, 'XTick', 0:pi/10:2*pi);
set(gca,'XTickLabel',0:pi/10:2*pi);
title('(a) Amplitude-frequency response')
grid on
xlabel('omega')
ylabel('Amplitude')
axis([0 2*pi 0.5 1.5])
grid on
subplot(2,1,2)
plot(omega,Ph)
set(gca, 'XTick', 0:pi/10:2*pi);
set(gca,'XTickLabel',0:pi/10:2*pi);
title('(a) Phase-frequency response')
grid on
xlabel('omega')
ylabel('Phase')
axis([0 2*pi -0.6 0.6])
grid on
运行结果
三、实验内容
代码:
syms z; % Define the independent variable
F1z = (z^2+z+1)/(z^2+z-2);
f1 = iztrans(F1z); % Perform the inverse z transform
disp(f1)
运行结果:
(-2)^n/2 - kroneckerDelta(n, 0)/2 + 1
题目二
代码:
syms z;Flz=(z^4+z^3+z^2+z+1)/(z^4);fl=iztrans(Flz);disp(fl)
结果:
kroneckerDelta(n - 1, 0) + kroneckerDelta(n - 2, 0) + kroneckerDelta(n - 3, 0) + kroneckerDelta(n - 4, 0) + kroneckerDelta(n, 0)
题目三;
代码
syms z;Flz=(2*z^2+6*z+12)/(z^4);fl=iztrans(Flz);disp(fl)
结果:
2*kroneckerDelta(n - 2, 0) + 6*kroneckerDelta(n - 3, 0) + 12*kroneckerDelta(n - 4, 0)
5.实验要求
六.实验感想
通过Z变换和Z反变换,熟悉了MATLAB的使用
实验三 IIR 滤波器的设计与信号滤波
1、实验目的
(1)熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法。
(2)掌握数字滤波器的计算机仿真方法。
(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识
2.实验原理
3、实验步骤及内容
实验代码
用双线性变换法设计Butterworth低通数字滤波器,要求通带频率为 ,通带波纹小于1dB,阻带频率为 ,幅度衰减大于15dB,采样频率为Fs=100Hz。
clc;
%写出已知条件,设置采样点数
wp=0.25*pi;ws=0.4*pi;
rp=1;as=15;
fs=2000;Nn=128;
%由数字指标映射到模拟滤波器指标
WP=wp*fs;WS=ws*fs;
%利用巴特沃斯滤波器的设计方法,设计一个模拟滤波器
[N,Wn]=buttord(WP,WS,rp,as,'s');
[z,p,k]=buttap(N);
[B,A]=zp2tf(z,p,k);
%转换到数字滤波器
[b,a]=lp2lp(B,A,Wn);%从一个低通原型变换为具有不同截止频率的低通滤波器
[bz,az]=impinvar(b,a,fs);%根据冲激响应不变法得到数字滤波器
freqz(bz,az,Nn,fs);
WS=2*fs*tan(ws/2);
WP=2*fs*tan(wp/2);
[bz,az]=bilinear(b,a,fs);
freqz(bz,az,Nn,fs);[H,w]=freqz(bz,az);
figure;
subplot(211);
plot(w/pi,abs(H));
subplot(212);
plot(w/pi,angle(H));
运行结果
6实验报告要求
7实验感想
通过IIR滤波器的设计,熟悉了MATLAB的使用
实验四 用窗函数法设计 FIR 数字滤波器
1、实验目的
(1)掌握用窗函数法设计 FIR 数字滤波器的原理和方法。
(2)熟悉线性相位 FIR 数字滤波器特性。
(3)了解各种窗函数对滤波特性的影响
2、实验原理
、
3、实验步骤及内容
实验代码:
1设计滤波器,采用汉明窗,长度41(阶数40),采样频率2000hz:
clear all; close all; clc;
% 滤波器长度
N=41;
%采样频率
fs=2000;%各种滤波器的特征频率
fc_lpf=200;
fc_hpf=200;
fp_bandpass=[200 400];
fc_stop=[200 400];%以采样频率的一般,对频率归一化
wn_lpf=fc_lpf*2/fs;
wn_hpf=fc_hpf*2/fs;
wn_bandpass=fp_bandpass*2/fs;
wn_stop=fc_stop*2/fs;%采用fir1函数设计FIR滤波器
b_lpf=fir1(N-1,wn_lpf);
b_hpf=fir1(N-1,wn_hpf,'high');
b_bandpass=fir1(N-1,wn_bandpass,'bandpass');
b_stop=fir1(N-1,wn_stop,'stop');%求幅频响应
m_lpf=20*log(abs(fft(b_lpf)))/log(10);
m_hpf=20*log(abs(fft(b_hpf)))/log(10);
m_bandpass=20*log(abs(fft(b_bandpass)))/log(10);
m_stop=20*log(abs(fft(b_stop)))/log(10);% 设置频率响应的横坐标单位为hz
x_f=0:(fs/length(m_lpf)):fs/2;% 单位脉冲响应
subplot(4,2,1);stem(b_lpf);xlabel('n');ylabel('h(n)');legend('lpf');
subplot(4,2,3);stem(b_hpf);xlabel('n');ylabel('h(n)');legend('hpf');
subplot(4,2,5);stem(b_bandpass);xlabel('n');ylabel('h(n)');legend('bandpass');
subplot(4,2,7);stem(b_stop);xlabel('n');ylabel('h(n)');legend('stop');% 幅频响应
subplot(4,2,2);plot(x_f,m_lpf(1:length(x_f)));xlabel('频率(hz)');ylabel('幅度(db)','fontsize',8);legend('lpf')
subplot(4,2,4);plot(x_f,m_hpf(1:length(x_f)));xlabel('频率(hz)');ylabel('幅度(db)','fontsize',8);legend('hpf')
subplot(4,2,6);plot(x_f,m_bandpass(1:length(x_f)));xlabel('频率(hz)');ylabel('幅度(db)','fontsize',8);legend('bandpass')
subplot(4,2,8);plot(x_f,m_stop(1:length(x_f)));xlabel('频率(hz)');ylabel('幅度(db)','fontsize',8);legend('stop');
仿真脉冲响应和幅频响应图
6实验要求
7.实验感想
通过FIR滤波器设计,熟悉了MATLAB的使用
实验五 用 FFT 作谱分析
1实验目的
(1)进一步加深 DFT 算法原理和基本性质的理解(因为 FFT 只是 DFT 的一种快速算法,所 以 FFT 的运算结果必然满足 DFT 的性质)
(2)熟悉 FFT 算法原理及子程序的应用。
(3)掌握用 FFT 对连续信号和时域离散信号进行频谱分析的基本方法。了解可能出现的分 析误差和原因,以便在实际中正确应用 FFT。
2、实验原理
3、实验步骤及内容
实验数据记录
%《数字信号处理(第4版)》第10章实验2程序exp2a.m
% 西安电子科技大学出版社出版 高西全 丁玉美 合著 2016年
% 时域采样理论验证
Tp=64/1000;
%产生M长采样序列x(n)
% Fs=1000;T=1/Fs;
Fs=1000;T=1/Fs;
M=Tp*Fs;n=0:M-1;
A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M); %M点FFT[xnt)]
yn='xa(nT)';
subplot(3,2,1);tstem(xnt,yn);box on;title('(a) Fs=1000Hz');
k=0:M-1;fk=k/Tp;
subplot(3,2,2);plot(fk,abs(Xk));title('(a) T*FT[xa(nT)],Fs=1000Hz');
xlabel('f(Hz)');
ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])
% Fs=300;T=1/Fs;
Fs=300;T=1/Fs;
M=ceil(Tp*Fs);n=0:M-1;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M); %M点FFT[xnt)]
yn='xa(nT)';
subplot(3,2,3);tstem(xnt,yn);box on;title('(b) Fs=300Hz');
k=0:M-1;fk=k/Tp;
subplot(3,2,4);plot(fk,abs(Xk));title('(b) T*FT[xa(nT),Fs=300Hz');
xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])
% Fs=200;T=1/Fs;
Fs=200;T=1/Fs;
M=ceil(Tp*Fs);n=0:M-1;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M); %M点FFT[xnt)]
yn='xa(nT)';subplot(3,2,5);tstem(xnt,yn);box on;title('(c) Fs=200Hz');
k=0:M-1;fk=k/Tp;
subplot(3,2,6);plot(fk,abs(Xk));title('(c) T*FT[xa(nT),Fs=200Hz');
xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])
先对下列序列进行谱分析,
选择FFT的变换区间N为8和16两种情况进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。
对于第一个序列
对于第2个序列
对于第3个序列
对下列周期序列进行频谱分析:
选择FFT的变换区间N为8和16两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。
对于第4个序列
对于第5个序列
对模拟周期信号进行频谱分析:
选择采样率Fs=64Hz,对变换区间N=16,32,64三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。
对于第6个序列
6实验报告要求
内容总结
图1a和1b说明x1(n)=R4(n)的8点DFT和16点DFT分别是x1(n)的频谱函数的8点采样和16点采样,图2a和图3a表明x3(n)=x2(n+3)8R8(n)的8点DFT的模相等,但是当N=16时,x3(n)与x2(n)不满足位移关系,所以导致2b和3b的模不相同。
x4(n)的周期为8,所以N=8和N=16是其周期的整数倍,得到正确的单一频率正弦波的频谱,仅在0.25Π处有1跟单一谱线,如图4a和4b所示。
X5(n)的周期为16,所以N=8时,得到的频谱不正确,如5a所示。当N=16时,为其周期的整数倍,故能得到正确的频谱,在0.25Π和0.125Π处有两根单一谱线,如图5b所示。
x6(n)有三个频率成分,f1=4hz,f2=8hz,f3=10hz。所以x6(n)的周期为0.5,采样频率Fs=64Hz = 16f1 = 8f2 = 6.4f3。变换区间N=16时,观察时间Tp = 16T = 0.25s,不是x6(t)的整数倍周期,所以所得频谱不正确,如图6a所示。变换区间N=32,64时,观察时间Tp=0.5s,1s,是x6(t)的整数周期,所以所得频谱正确,如图6b和6c所示。图中3根谱线正好位于4Hz,8Hz,10Hz处。变换区间N=64时频谱幅度是变换区间N=32时2倍.
通过以上实验进一步论证了当周期信号的频谱是离散谱,只有用整数倍周期的长度做FFT,得到的离散谱才能代表周期信号的频谱。
实验 6 综合实验
1实验目的
(1)了解语音信号的获取及基本处理
(2)给定设计指标,能选用多种方法设计出符合指标要求的滤波器。
(3)掌握各种设计方法的原理,步骤以及特点。
(4)培养学生实际应用及综合设计的能力。
2、实验内容 (三选一)
二.设计一个数字带通滤波器
采用FIR函数设计滤波器
clear all; close all; clc;
% 滤波器长度
N=41;
%采样频率
fs=2000;%各种滤波器的特征频率
fc_lpf=200;
fc_hpf=200;
fp_bandpass=[200 400];
fc_stop=[200 400];%以采样频率的一般,对频率归一化
wn_lpf=fc_lpf*2/fs;
wn_hpf=fc_hpf*2/fs;
wn_bandpass=fp_bandpass*2/fs;
wn_stop=fc_stop*2/fs;%采用fir1函数设计FIR滤波器
b_lpf=fir1(N-1,wn_lpf);
b_hpf=fir1(N-1,wn_hpf,'high');
b_bandpass=fir1(N-1,wn_bandpass,'bandpass');
b_stop=fir1(N-1,wn_stop,'stop');%求幅频响应
m_lpf=20*log(abs(fft(b_lpf)))/log(10);
m_hpf=20*log(abs(fft(b_hpf)))/log(10);
m_bandpass=20*log(abs(fft(b_bandpass)))/log(10);
m_stop=20*log(abs(fft(b_stop)))/log(10);% 设置频率响应的横坐标单位为hz
x_f=0:(fs/length(m_lpf)):fs/2;% 单位脉冲响应
subplot(4,2,1);stem(b_lpf);xlabel('n');ylabel('h(n)');legend('lpf');
subplot(4,2,3);stem(b_hpf);xlabel('n');ylabel('h(n)');legend('hpf');
subplot(4,2,5);stem(b_bandpass);xlabel('n');ylabel('h(n)');legend('bandpass');
subplot(4,2,7);stem(b_stop);xlabel('n');ylabel('h(n)');legend('stop');% 幅频响应
subplot(4,2,2);plot(x_f,m_lpf(1:length(x_f)));xlabel('频率(hz)');ylabel('幅度(db)','fontsize',8);legend('lpf')
subplot(4,2,4);plot(x_f,m_hpf(1:length(x_f)));xlabel('频率(hz)');ylabel('幅度(db)','fontsize',8);legend('hpf')
subplot(4,2,6);plot(x_f,m_bandpass(1:length(x_f)));xlabel('频率(hz)');ylabel('幅度(db)','fontsize',8);legend('bandpass')
subplot(4,2,8);plot(x_f,m_stop(1:length(x_f)));xlabel('频率(hz)');ylabel('幅度(db)','fontsize',8);legend('stop');
脉冲仿真响应和幅频响应图
设计带通滤波器
% 定义截止频率和阻尼比
omega_0 = 10;
xi = 0.707;% 创建二阶低通滤波器传递函数模型
H_second_order_lowpass = tf(omega_0^2, [1, 2*xi*omega_0, omega_0^2]);% 创建二阶高通滤波器传递函数模型
H_second_order_highpass = tf([1, 0, 0], [1, 2*xi*omega_0, omega_0^2]);% 创建二阶带通滤波器传递函数模型
H_second_order_bandpass = tf([2*xi*omega_0, 0], [1, 2*xi*omega_0, omega_0^2]);% 创建二阶带阻滤波器传递函数模型
H_second_order_bandstop = tf([1, 0, omega_0^2], [1, 2*xi*omega_0, omega_0^2]);% 创建第一个图:对比二阶低通和高通滤波器的频率响应曲线
figure;
subplot(1,2,1);
bode(H_second_order_lowpass, 'b', H_second_order_highpass, 'r');
grid on;
legend('Lowpass', 'Highpass');
title('二阶滤波器:低通、高通');% 创建第二个图:对比二阶带通和带阻滤波器的频率响应曲线
subplot(1,2,2);
bode(H_second_order_bandpass, 'g', H_second_order_bandstop, 'm');
grid on;
legend('Bandpass', 'Bandstop');
title('二阶滤波器:带通、带阻');
仿真曲线:
3实验报告要求
(1)简述实验目的。
(2)编程实现各实验内容,列出实验清单及说明。
(3)总结实验结论并写出实验收获或感想
4.实验感想
掌握了低通,高通,带通滤波器的基本设计思想,熟悉了MATLAB的使用。
相关文章:
【数字信号处理】期末综合实验,离散时间信号与系统的时域分析,离散信号 Z 变换,IIR 滤波器的设计与信号滤波,用窗函数法设计 FIR 数字滤波器
关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…...
面试技术点之安卓篇
一、基础 二、高级 三、组件 Android中SurfaceView和TextureView有什么区别? 参考 Android中SurfaceView和TextureView有什么区别? 四、三方框架 五、系统源码 六、性能优化...
Windows Terminal ssh到linux
1. windows store安装 Windows Terminal 2. 打开json文件配置 {"$help": "https://aka.ms/terminal-documentation","$schema": "https://aka.ms/terminal-profiles-schema","actions": [{"command": {"ac…...
自适应卡尔曼滤波(包括EKF、UKF、CKF等)的创新思路——该调什么、不该调什么
在调节自适应卡尔曼滤波时,需要注意的参数和矩阵都对滤波器的性能有直接影响。本文给出详细的说明,包括相关公式和 MATLAB 代码示例 文章目录 需要调节的参数1. **过程噪声协方差矩阵 Q Q Q**:2. **测量噪声协方差矩阵 R R R**:…...
SpringBoot项目监听端口接受数据(NIO版)
文章目录 前言服务端相关配置核心代码 客户端 前言 环境: JDK:64位 Jdk1.8 SpringBoot:2.1.7.RELEASE 功能: 使用Java中原生的NIO监听端口接受客户端的数据,并发送数据给客户端。 服务端 相关配置 application.ym…...
QT实战--带行号的支持高亮的编辑器实现(2)
本文主要介绍了第二种实现带行号的支持高亮的编辑器的方式,基于QTextEdit实现的,支持自定义边框,背景,颜色,以及滚动条样式,支持输入变色,复制文本到里面变色,支持替换,是一个纯专业项目使用的编辑器 先上效果图: 1.头文件ContentTextEdit.h #ifndef CONTENT_TEXT_…...
(翻译)网络安全书籍推荐列表
注:对于所有的书籍链接,我都会寻找中文版重新链接,如无中文版,则按原文链接英文版。并且所有书籍名称保留英文名称 这是一个我建立的一个有关计算机安全的书籍列表,它们都是很有用的“计算机安全”这个主题的相关数据。…...
TcpServer 服务器优化之后,加了多线程,对心跳包进行优化
TcpServer 服务器优化之后,加了多线程,对心跳包进行优化 TcpServer.h #ifndef TCPSERVER_H #define TCPSERVER_H#include <iostream> #include <winsock2.h> #include <ws2tcpip.h> #include <vector> #include <map> #…...
黑马程序员Java项目实战《苍穹外卖》Day12
苍穹外卖-day12 课程内容 工作台Apache POI导出运营数据Excel报表 功能实现:工作台、数据导出 工作台效果图: 数据导出效果图: 在数据统计页面点击数据导出:生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原…...
经纬度解析到省市区【开源】
现在业务中有需要解析经纬度到省市区。 按理说可以直接使用高德,百度之类的。 但是老板太抠。于是去找开源项目。找了一圈,数据都太老了,而且有时候编码还不匹配。 所以诞生了这个项目,提供完整的一套省市区编码和定位反解析。…...
bug:uniapp运行到微信开发者工具 白屏 页面空白
1、没有报错信息 2、预览和真机调试都能正常显示,说明代码没错 3、微信开发者工具版本已经是win7能装的最高版本了,1.05版 链接 不打算回滚旧版本 4、解决:最后改调试基础库为2.25.4解决了,使用更高版本的都会报错,所…...
旧版本 MySQL 处理字符表情写入问题
报错信息 新增数据 java.sql.SQLException: Incorrect string value: \xF0\x9F\x91\x8D\xE5\x8F... for column解决方案 老项目,而且是旧版本,且表情不影响业务,直接简单粗暴的过滤掉即可,有还原的需求也可以 toUnicode 转为字…...
vue使用v-if和:class完成条件渲染
1.使用v-if 和v-else 完成主body和暂无数据两个<tbody>标签的条件渲染(注意与v-show效果的区别) 2.v-for完成列表渲染 3.:class完成分数标红的条件控制 删哪个就传哪个的id,基于这个id去过滤掉相同id的项,把剩下的项返回 <td><a click.p…...
Docker:WARNING: Published ports are discarded when using host network mode 解决方法
在Docker中,使用主机网络模式(host network mode)时,容器将共享主机的网络命名空间,这意味着容器将直接使用主机的网络接口和端口。因此,当你尝试通过Docker的发布端口功能(publish a port&…...
音视频入门基础:MPEG2-TS专题(12)—— FFmpeg源码中,把各个transport packet组合成一个Section的实现
一、引言 从《音视频入门基础:MPEG2-TS专题(9)——FFmpeg源码中,解码TS Header的实现》可以知道:FFmpeg源码中使用handle_packet函数来处理一个transport packet(TS包),该函数的前半…...
【数据结构】二叉树的性质和存储结构
性质 在二叉树的第i层上至多有2^{i-1}个结点,至少有1个结点 深度为k的二叉树至多有2^{k-1}个结点(k≥1),至少有k个结点 对任何一棵二叉树T,如果其叶子数为n0,度为2的结点数为n2,则n0n21 具有n个结点的完…...
gbase8s之查看锁表的sql
#只能看当前锁表的sql,看不到历史的。 #使用方法:sh 脚本文件名 库名 表名 database$1 table$2 hexoncheck -pt $database:$table|grep -i partnum|awk {printf ("%x|",$3)} #echo $hex #echo ${hex%?} #ownonstat -k |grep -iE ${he…...
URI 未注册(设置 语言和框架 架构和 DTD)
一、问题描述:在springboot项目中的resources中新建mybatis-config.xml文件时,从mybatis文档中复制的代码报错:URI 未注册(设置 | 语言和框架 | 架构和 DTD) 二、解决:在Springboot项目的设置->架构和DTD中添加 红色的网址&…...
Ubuntu上使用system()函数运行不需要输入密码
使用system()运行一些终端命令的时候,需要sudo权限,也就是必须输入密码,那么在程序自启动的时候就无法成功启动。如果设置Ubuntu下所有操作都不需要密码,安全性太低,所以我们可以将需要用到的终端指令给予无需输入密码…...
【MySQL】数据库必备知识:全面整合表的约束与深度解析
前言:本节内容讲述表的约束的相关内容。 表的约束博主将会通过两篇文章进行讲解, 这是第一篇上半部分。 讲到了约束概念。 以及几种常见约束。下面友友们开始学习吧! ps:友友们使用了mysql就可以放心观看喽! 目录 表的约束概念 …...
Windows下Docker快速安装使用教程
在当今软件开发和部署的世界中,Docker 已经成为一个不可或缺的工具。这里不对Docker进行详细阐述,需要系统学习Docker的伙伴可寻求更专业详细的教程或书籍学习。本文主要讲解Windows系统下Docker安装及使用。 一、环境准备 1.1检查电脑是否开启虚拟化 …...
PTA DS 6-2 另类堆栈 (C补全函数)
6-2 另类堆栈 分数 15 全屏浏览 切换布局 作者 DS课程组 单位 浙江大学 在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满? 函数接口定义: …...
rk3568之mpp开发笔记mpp移植到开发板
前言: 大家好,今天给大家介绍的内容是rk平台的mpp编解码这块的内容,在rk目前看到有三套框架涉及到编解码内容: 1、rkmedia 2、rockit 3、mpp 这三种不同形式的编解码方式,后面再做详细的框架对比,今天我…...
Vue解决跨域问题
要解决 Vue 项目的跨域问题并通过 vue.config.js 配置代理,可以按照以下步骤修改 vue.config.js 文件。你提供的代码大部分已经正确,只需要做一些格式上的调整。以下是正确的 vue.config.js 配置: // vue.config.jsmodule.exports {devServ…...
Kubernetes Nginx-Ingress | 禁用HSTS/禁止重定向到https
目录 前言禁用HSTS禁止重定向到https关闭 HSTS 和设置 ssl-redirect 为 false 的区别 前言 客户请求经过ingress到服务后,默认加上了strict-transport-security,导致客户服务跨域请求失败,具体Response Headers信息如下; 分析 n…...
TortoiseGit的下载、安装和配置
一、TortoiseGit的简介 tortoiseGit是一个开放的git版本控制系统的源客户端,支持Winxp/vista/win7.该软件功能和git一样 不同的是:git是命令行操作模式,tortoiseGit界面化操作模式,不用记git相关命令就可以直接操作,读…...
如何绕过IP禁令
网站、游戏和应用程序可以屏蔽特定IP地址,从而阻止使用该IP地址的任何人访问其服务。这称为IP禁令。管理员可以出于多种原因(例如发出过多请求或可疑活动)屏蔽IP地址。但是,这些禁令会使收集数据或访问在线内容变得更加困难。 一…...
Vue3的provide和inject实现多级传递的原理
先来看个demo,这个是父组件,代码如下: <template><ChildDemo /> </template><script setup> import ChildDemo from "./child.vue"; import { ref, provide } from "vue"; // 提供响应式的值 c…...
使用html2canvas实现前端截图
一、主要功能 网页截图:html2canvas通过读取DOM结构和元素的CSS样式,在客户端生成图像,不依赖于服务端的渲染。它可以将指定的DOM元素渲染为画布(canvas),并生成图像。多种输出格式:生成的图像…...
使用 Python 爬取某网站简历模板(bs4/lxml+协程)
使用 Python 爬取站长素材简历模板 简介 在本教程中,我们将学习如何使用 Python 来爬取站长素材网站上的简历模板。我们将使用requests和BeautifulSoup库来发送 HTTP 请求和解析 HTML 页面。本教程将分为两个部分:第一部分是使用BeautifulSoup的方法&am…...
能自己做效果图的网站/百度seo优化排名如何
题目传送门 题目大意: 同这题,但是对于 111 ~ mmm 内的每个 nnn 都要求解,且 m≤5105m\leq 5\times 10^5m≤5105。 题解 先不考虑顺序,最后乘 n!n!n! 即可。 每个元素之多选一个,要选出 nnn 个来,且贡献…...
南充商城网站建设/win7优化大师
屏幕的有效宽高: window.screen.availHeight window.screen.availWidth 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页…...
信息课做网站的软件/企业邮箱登录
idea新建xml文件https://www.jianshu.com/p/b8aeadae39b0 或https://blog.csdn.net/Hi_Boy_/article/details/80491358一.##Xml概念>eXtendsible markup language 可扩展的标记语言二.###XML 作用:1. 可以用来保存数据2. 可以用来做配置文件3. …...
顺庆区城乡规划建设局门户网站/搜索量排名
箱线图箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在宏基因组领域,常用于展示样品组中各样品Alpha多样性的分布第一种情况,最大或最小值没有超过1.5倍箱体范围第二种情…...
wordpress点餐主题/百度seo关键词排名优化工具
今天上午,微信出现重大Bug! 从其他App分享内容给个人或微信群,均无法正常分享。 此外,图片、文档的发送以及网页版微信登陆也短暂地出现了故障。 持续时间约30分钟,目前各项功能已全部恢复,相关帐号信息…...
免费做国际贸易的网站/免费网站推广优化
原理如下: 代码如下: import pandas as pd import numpy as np import matplotlib.pyplot as pltdef build_data():准备数据:return:准备好的数据data_list []with open(./test.txt) as f:#将所有的元素读成一个列表lines f.readlines()#循环对每一行元…...