clc;
clear;
load 'D:\Program Files\Matlab2020b\bin\250hzpl\基线未校正\movOriginaledBline.mat'
inSignal=movOriginaledBline;
fs=1000;
f0=50;
k=0.95;
ii=1:1000;
i=0:500;
%function [ H,W,t,f,movfundFrecy,FmovfundFrecy ] = movFundFrecy( inSignal,f0,fs,k )
%movFundFrecy IIR陷波器去除工频干扰
% inSignal 输入信号
% f0 工频
% fs 采样频率
% K调节参数
% H 复频响应矢量
% W 频率向量
% t 时间矢量
% f 单侧频率矢量
% movfundFrecy 去工频后时域信号
% FmovfundFrecy 去工频后信号的幅频谱
T=1/fs; %采样周期
L=length(inSignal); %信号长度
t=(0:L-1)*T; %时间矢量
f=fs*(0:(L/2))/L; %单侧频率矢量
w0=2*pi*f0/fs; %角频率
B=[1 -2*cos(w0) 1]; %系统传递函数分子
A=[1 -2*k*cos(w0) k*k]; %系统传递函数分母
[H,W]=freqz(B,A); %H为幅频响应矢量,W为频率矢量
Hf=abs(H);
Hx=angle(H);
clf
figure(1)
plot(W/3.12,Hf)
ylabel('\fontname{宋体}\fontsize{15}幅值\fontname{Times New Roman}\fontsize{15} (dB)');xlabel('\fontname{宋体}\fontsize{15}归一化频率\fontname{Times New Roman}\fontsize{15} (×π rad/sample) ');
figure(2)
plot(W/3.12,Hx)
ylabel('\fontname{宋体}\fontsize{15}相位\fontname{Times New Roman}\fontsize{15} (°)');xlabel('\fontname{宋体}\fontsize{15}归一化频率\fontname{Times New Roman}\fontsize{15} (×π rad/sample) ');
movfundFrecy=filter(B,A,inSignal); %去工频
FmovfundFrecy=fft(movfundFrecy); %去基线去工频后信号傅里叶变换
P2FmovfundFrecy=FmovfundFrecy/L.*conj(FmovfundFrecy)/L; %双侧幅频谱
FmovfundFrecy=P2FmovfundFrecy(1:L/2+1); %单侧幅频谱
FmovfundFrecy(2:end-1)=2*FmovfundFrecy(2:end-1); %P1(1)是直流分量
FmovfundFrecy=real(FmovfundFrecy);
figure(3)
plot(ii,movfundFrecy);
ylabel('\fontname{宋体}\fontsize{15}幅值\fontname{Times New Roman}\fontsize{15} (μv)');xlabel('\fontname{宋体}\fontsize{15}采样点');
figure(4)
plot(i,FmovfundFrecy);
ylabel('\fontname{宋体}\fontsize{15}幅值\fontname{Times New Roman}\fontsize{15} (μv)');xlabel('\fontname{宋体}\fontsize{15}采样点');
inSignal=fft(inSignal); %去基线去工频后信号傅里叶变换
inSignal=inSignal/L.*conj(inSignal)/L; %双侧幅频谱
inSignal2=inSignal(1:L/2+1); %单侧幅频谱
inSignal2(2:end-1)=2*inSignal2(2:end-1); %P1(1)是直流分量
inSignal2=real(inSignal2);
figure(5)
plot(i,inSignal2);
ylabel('\fontname{宋体}\fontsize{15}幅值\fontname{Times New Roman}\fontsize{15} (μv)');xlabel('\fontname{宋体}\fontsize{15}频率\fontname{Times New Roman}\fontsize{15} (Hz)');
save('D:\Program Files\Matlab2020b\bin\250hzpl\基线未校正\movfundFrecy','movfundFrecy');