[C#] UDP Socket
static Socket client = null;
//[连接]
client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
try
{
client.Bind(new IPEndPoint(IPAddress.Parse(LocalIP.Text.Trim()), int.Parse(LocalPort.Text.Trim())));
client.Connect(IPAddress.Parse(DevIP.Text.Trim()), int.Parse(DevPort.Text.Trim()));
RecordClientInfo("[客户端报告]连接服务器成功!");
}
catch (Exception)
{
RecordClientInfo("[客户端报告]连接服务器失败!");
return;
}
if (threadClientRev == null)
threadClientRev = new Thread(ClientRev);
threadClientRev.IsBackground = true;
threadClientRev.Start();
//[发送]
client.Send(buffer);
//[接收]
private void ClientRev()
{
UInt32[] info_error = new UInt32[22]; ;
while (!cancelTokenSource.IsCancellationRequested)
{
try
{ //定义一个1M的内存缓冲区,用于临时性存储接收到的消息
byte[] arrRecvmsg = new byte[1024 * 1024];
//将客户端套接字接收到的数据存入内存缓冲区,并获取长度
int length = client.Receive(arrRecvmsg);
//将套接字获取到的字符数组转换为人可以看懂的字符串
byte [] bufrcs= new byte[length];for (int i = 0; i < length; i++)
{
bufrcs[i] = arrRecvmsg[i];
}
}
}
[SF]1阶和3阶低通滤波对比
采样频率100HZ,截止频率20HZ ,效果很明显
x=[0:1:99];
p1 =x ;
iir1 =x ;
f=x;
fc=100; %采样频率
t=1/fc.*x;
f1=2; %信号频率
w1=2*pi*f1;
f2 =40; %干扰频率1
w2=2*pi*f2;
hold on
grid on
z1 = sin(w1*t); %
z2 = 0.2*sin(w2*t);
zz = z1+z2;
fh1 = 20; %一阶低通截止频率
a1 = 1/(1+(fc/(2*pi*fh1)));
%三阶IIR滤波
n0 = 0.098531160923927052 ;
n1 = 0.29559348277178116 ;
n2 = 0.29559348277178116 ;
n3 = 0.098531160923927052 ;
d0 = 1 ;
d1 = -0.57724052480630283 ;
d2 = 0.42178704868956196 ;
d3 = -0.056297236491842671;
%3阶高通
bn0 = 0.25691560124846347 ;
bn1 = -0.7707468037453904 ;
bn2 = 0.7707468037453904 ;
bn3 = -0.25691560124846347 ;
bd0 = 1 ;
bd1 = -0.57724052480630295 ;
bd2 = 0.42178704868956196 ;
bd3 = -0.056297236491842678 ;
fn0 = 0.42080777983773182 ;
fn1 = 0.42080777983773182 ;
fd0 = 1;
fd1 = -0.15838444032453636;
a2 = 0.5
for n=(2:1:length(x));
p1(n) = (1-a2)*p1(n-1)+ a2 * zz(n);
end
%y(n) = n0*x(n) + n1*x(n-1) +n2*x(n-2)+n3*x(n-3) – d1*y(n-1) – d2*y(n-2)-d3*y(n-3)-d4*y(n-4)
iir1 = zz; %3阶低通
iir2 = zz; %3阶高通
iir3 = zz; %1阶低通
for n=(4:1:length(x));
iir1(n) = n0*zz(n) + n1*zz(n-1) +n2*zz(n-2)+n3*zz(n-3) – d1*iir1(n-1) – d2*iir1(n-2)-d3*iir1(n-3);
end
for n=(2:1:length(x));
iir3(n) = fn0*zz(n) + fn1*zz(n-1)- fd1*iir1(n-1);
end
for n=(4:1:length(x));
iir2(n) = bn0*zz(n) + bn1*zz(n-1) +bn2*zz(n-2)+bn3*zz(n-3) – bd1*iir2(n-1) – bd2*iir2(n-2)-bd3*iir2(n-3);
end
maxtri = zeros(size(repmat(t’,[1 2])));%初始化矩阵
maxtri(:,1)= t’;
maxtri(:,2)= zz’;
maxtri
plot(t,zz,’r’);
plot(t,iir1,’k’);
plot(t,iir2,’b’);
[SF]一阶低通滤波
表达式
y(n) = (1-a)*y(n-1)+a*x(n)
a = 1/(1+(f/(2*pi*fh)))
f:采样频率 fh截止频率
[SF]IIR滤波器
以3阶低通 IIR 巴特沃斯 为例
y(n) = n0*x(n) + n1*x(n-1) +n2*x(n-2)+n3*x(n-3) – d1*y(n-1) – d2*y(n-2)-d3*y(n-3)-d4*(n-4)
其中,例如采样频率Fs = 100HZ 截止频率Fc=20HZ
得出
n0 =0.098531160923927052
n1 =0.29559348277178116
n2 =0.29559348277178116
n3 =0.098531160923927052
d0 = 1
d1= -0.57724052480630283
d2= 0.42178704868956196
d3= -0.056297236491842671
带入公式
[FPGA] SDRAM+FIFO+VGA
实现功能
1.写入256个数到FIFO,然后写到SDRAM,从SDRAM读出,再写道FIFO.
2.VGA显示红蓝条
—————-代码因wordpress上传限制未上传,修复后再上传
[MFC] 窗口添加 OnInitDialog()函数
1.打开“资源视图”,在窗口上右键,选择“类向导”
2.点击“虚函数”,搜索到“OnInitDialog”后点击“添加函数”
3.点击“确定”
[MFC] 添加新窗口
1.在“资源视图”的”Dialog” 上右键,选择”插入Dialog”
2.选中新生成的Dialog,在属性里更改Dialog的名字
3.双击新生成的Dialog,在弹出的”MFC 添加类向导”里输入类名 “C****”,会自动生成 ****.c 和 ****.h ,点击 “完成”
4.添加测试按键,并添加测试
CDlg**** DlgTest;
DlgTest.DoModal();
5.生成后即可实现按键后弹出新对话框
6.如报错,则在报错的文件下加入 include “Resource.h” 和 ****.h
世界,您好!
欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!
