① pid图中的pia与pic有什么区别
PIC为microchip公司推出的单片机系列,PID为控制算法,具体意思为比例积分微分控制。
② PIC单片机 在铁电存储器里增删改查数据 实现算法
你这10分怎么这么好用呢?我给你个思路吧,行不行你自行斟酌,以8个或更多的字节为单位,前两个字节存序号和标志,删除时置位标志位,写入时先搜删除标志再写数据。
再给你补个简单方法,如果有空间的话挂个文件系统。
③ 什么是BlowFish对称加密算法
对称加密算法简介:
对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。
特点:
对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。
不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。而与公开密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。
具体算法:
3DES算法,Blowfish算法,RC5算法。 对称加密算法-原理及应用对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。DESCryptoServiceProvider
RC2CryptoServiceProvider
RijndaelManaged
//例加密文本文件(RijndaelManaged )
byte[] key = { 24, 55, 102,24, 98, 26, 67, 29, 84, 19, 37, 118, 104, 85, 121, 27, 93, 86, 24, 55, 102, 24,98, 26, 67, 29, 9, 2, 49, 69, 73, 92 };
byte[] IV ={ 22, 56, 82, 77, 84, 31, 74, 24,55, 102, 24, 98, 26, 67, 29, 99 };
RijndaelManaged myRijndael = new RijndaelManaged();
FileStream fsOut = File.Open(strOutName, FileMode.Create,FileAccess.Write);//strOutName文件名及路径 FileStream fsIn = File.Open(strPath, FileMode.Open,FileAccess.Read);
CryptoStream csDecrypt=new CryptoStream(fsOut,myRijndael.CreateEncryptor(key, IV),CryptoStreamMode.Write);//读加密文本
BinaryReader br = new BinaryReader(fsIn);
csDecrypt.Write(br.ReadBytes((int)fsIn.Length),0, (int)fsIn.Length);
csDecrypt.FlushFinalBlock();
csDecrypt.Close();
fsIn.Close();
fsOut.Close();
//解密文件
byte[] key = { 24, 55, 102, 24, 98, 26, 67, 29, 84, 19, 37, 118,104, 85, 121, 27, 93, 86, 24, 55, 102, 24, 98, 26, 67, 29, 9, 2, 49, 69, 73, 92};
byte[] IV ={ 22, 56, 82, 77, 84, 31, 74, 24, 55, 102, 24, 98, 26,67, 29, 99 };
RijndaelManaged myRijndael = new RijndaelManaged();
FileStream fsOut = File.Open(strPath, FileMode.Open, FileAccess.Read);
CryptoStream csDecrypt = new CryptoStream(fsOut, myRijndael.CreateDecryptor(key,IV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(csDecrypt);//把文件读出来
StreamWriter sw = new StreamWriter(strInName);//解密后文件写入一个新的文件
sw.Write(sr.ReadToEnd());
sw.Flush();
sw.Close();
sr.Close();f
sOut.Close();
用图片加密(RC2CryptoServiceProvider )
FileStreamfsPic = new FileStream(pictureBox1.ImageLocation,FileMode.Open, FileAccess.Read);
//加密文件流(textBox1.Text是文件名及路径)
FileStream fsText = new FileStream(textBox1.Text, FileMode.Open,FileAccess.Read);
byte[] bykey = new byte[16]; //初始化
Key IVbyte[] byIv = new byte[8];
fsPic.Read(bykey, 0, 16);
fsPic.Read(byIv, 0, 8);
RC2CryptoServiceProvider desc = newRC2CryptoServiceProvider();//desc进行加密
BinaryReader br = new BinaryReader(fsText);//从要加密的文件中读出文件内容
FileStream fsOut = File.Open(strLinPath,FileMode.Create, FileAccess.Write); // strLinPath临时加密文件路径CryptoStream cs = new CryptoStream(fsOut, desc.CreateEncryptor(bykey,byIv), CryptoStreamMode.Write);//写入临时加密文件
cs.Write(br.ReadBytes((int)fsText.Length),0, (int)fsText.Length);//写入加密流
cs.FlushFinalBlock();
cs.Flush();
cs.Close();
fsPic.Close();
fsText.Close();
fsOut.Close();
用图片解密
FileStream fsPic = new FileStream(pictureBox1.ImageLocation, FileMode.Open, FileAccess.Read); //图片流FileStream fsOut = File.Open(textBox1.Text,FileMode.Open, FileAccess.Read);//解密文件流
byte[] bykey = new byte[16]; //初始化
Key IVbyte[] byIv = new byte[8];
fsPic.Read(bykey, 0, 16);
fsPic.Read(byIv, 0, 8);
string strPath = textBox1.Text;//加密文件的路径
int intLent = strPath.LastIndexOf("\\")+ 1;
int intLong = strPath.Length;
string strName = strPath.Substring(intLent, intLong - intLent);//要加密的文件名称
string strLinPath = "C:\\"+ strName;//临时解密文件路径
FileStream fs = new FileStream(strLinPath, FileMode.Create,FileAccess.Write);
RC2CryptoServiceProvider desc = newRC2CryptoServiceProvider();//desc进行解密
CryptoStream csDecrypt = new CryptoStream(fsOut, desc.CreateDecryptor(bykey,byIv), CryptoStreamMode.Read);
//读出加密文件
BinaryReader sr = new BinaryReader(csDecrypt);//从要加密流中读出文件内容
BinaryWriter sw = new BinaryWriter(fs);//写入解密流
sw.Write(sr.ReadBytes(Convert.ToInt32(fsOut.Length)));
//sw.Flush();
sw.Close();
sr.Close();
fs.Close();
fsOut.Close();
fsPic.Close();
csDecrypt.Flush();
File.Delete(textBox1.Text.TrimEnd());//删除原文件
File.Copy(strLinPath, textBox1.Text);//复制加密文件
④ 这是pic单片机加权平均值滤波 这几个数是怎么运算的 我想知道运算步骤和结果
看主程序:
void main(void)
{
while(1)
{
temp=filter(); //加权平均值滤波
printf("%d\n",temp);
TX_temp(); //未知,可能是串口发送
}
}
主要是这部分
char filter()
{
char i;
char value_buf[N];
int sum=0;
for(i=0;i<N;i++) //这个for循环把table中的值赋给value_buf数组
{
value_buf[i]=table[i]; //其实就是 value_buf[4]={10,20,30,65};
delay(500); /不知为何要加延时,本人感觉/毫无意义浪费cpu
}
for(i=0;i<N;i++) //关键部分 sum=10*1+20*2+30*3+40*4
sum+=value_buf[i]*mul[i];
return (char)(sum/sum_mul); //返回(10*1+20*2+30*3+40*4)/sum_mul,整数部分
}
这部分代码没什么用,就做了一个简单的运算,加权平均值滤波算法如下:
/*
* 输入 参数:1.需处理数组首地址
* 2.权数组首地址(暂且用power_buf,英文不行)
* 3.数组长度
*/
int filter(char *dat_buf_p, char *power_buf_p, char buf_num)
{
int sum=0;
int sum_mul=0;
for(char i=0; i<buf_num; i++)
{
sum+=(*dat_buf_p)*(*power_buf_p); //数组*权值
sum_mul+=*power_buf_p; //生成权值和
dat_buf_p++; //数组指针加一,指向数组中下一个数
power_buf_p++; //权数组指针加一,指向权数组中下一个权
}
return (int)(sum/ sum_mul);
}
你试试这个函数,有问题跟我说。
⑤ pic单片机的pic是什么意思。
单片机PIC,是MICROCHIP公司单片机的标志,差不多都是以PIC开头的,在控制算法中有PID控制算法,Proportion Integration Differentiation,意为:比例积分微分
⑥ 有哪位朋友可以告诉我GDP,GNP ,PI,DI等的具体计算方法
GDP的测算有三种方法:生产法:GDP=∑各产业部门的总产出-∑各产业部门的中间消耗:收入法:GDP=∑各产业部门劳动者报酬+∑各产业部门固定资产折旧+∑各产业部门生产税净额+∑各产业部门营业利润;支出法:GDP=总消费+总投资+净出口。
国民生产总值反映一个国家的经济水平。按可比价格计算的国民生产总值,可以计算不同时期不同地区的经济发展速度(经济增长率)。国民生产总值的计算方法有三种:(1)生产法(或称部门法),是从各部门的总产值(收入)中减去中间产品和劳务消耗,得出增加值。各部门增加值的总和就是国民生产总值;(2)支出法(或称最终产品法),即个人消费支出+政府消费支出+国内资产形成总额(包括固定资本形成和库存净增或净减)+出口与进口的差额;(3)收入法(或称分配法),是将国民生产总值看作为各种生产高腊肢要素(资本、土地、劳动)所创造的增加价值总额。因此,它要以工资、利息、租金、利润、资本消耗、间接税净额(即间接税减政府补贴)等形式,在各种生产要素中间进行分配。这样,将全国各部门(物质生产部门和非物质生产部门)的上述各个项目加以汇总,即可计算出国民生总值。
计算圆周率
古今中外,许多人致力于圆周率的研究与计算。为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血。
十九世纪前,圆周率的计算进展相当缓慢,十九世纪后,计算圆周率的世界纪录频频创新。整个十九世纪,可以说是圆周率的手工计算量最大的世纪。
进入二十世纪,随着计算机的发明,圆周率的计算有了突飞猛进。借助于超级计算机,人们已经得到了圆周率的2061亿位精度。
历史上最马拉松式的计算,其一是德国的Ludolph Van Ceulen,他几乎耗尽了一生的时间,计算到圆的内接正262边形,于1609年得到了圆周率的35位精度值,以至于圆周率在德国被称为Ludolph 数;其二是英国的William Shanks,他耗费了15年的光阴,在1874年算出了圆周率的小数点后707位。可惜,后人发现,他从第528位开始就算错了。
把圆周率的数值算得这么精确,实际意义并不大。现代科技领域使用的圆周率值,有十几位已经足够了。如果用Ludolph Van Ceulen算出的35位精度的圆周率值,来计算一个能把太阳系包起来的一个圆的周长,误差还不到质子直径的百万分之一。以前的人计算圆周率,是要探究圆周率是否循环小数。自从1761年Lambert证明了圆周率是无理数,1882年Lindemann证明了圆周率是超越数后,圆周率的神秘面纱就被揭开了。
现在的人计算圆周率, 多数是为了验证戚世计算机的计算能力,还有,就是为了兴趣。
圆周率的计算方法
古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后3位的精度;刘徽用正 3072边形得到5位精度;Ludolph Van Ceulen用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其它公式和由这些经典公式衍生出来的公式,就不一一列举了。
1、 Machin公式
http://www.pep.com.cn/images/200503/pic_247046.gif
http://www.pep.com.cn/images/200503/pic_247047.gif
这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。
Machin.c 源程序
还有很多类似于Machin公式的反正切公式。在所有这些公式中,Machin公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位, Machin公式就力不从心了。下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程局早中涉及两个大数的乘除运算,要用FFT(Fast Fourier Transform)算法。FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nlog(n))。
2、 Ramanujan公式
http://www.pep.com.cn/images/200503/pic_247048.gif
1914年,印度数学家Srinivasa Ramanujan在他的论文里发表了一系列共14条圆周率的计算公式,这是其中之一。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。
1989年,David & Gregory Chudnovsky兄弟将Ramanujan公式改良成为:
http://www.pep.com.cn/images/200503/pic_247049.gif
这个公式被称为Chudnovsky公式,每计算一项可以得到15位的十进制精度。1994年Chudnovsky兄弟利用这个公式计算到了4,044,000,000位。Chudnovsky公式的另一个更方便于计算机编程的形式是:
http://www.pep.com.cn/images/200503/pic_247050.gif
3、AGM(Arithmetic-Geometric Mean)算法
Gauss-Legendre公式:
初值:http://www.pep.com.cn/images/200503/pic_247051.gif
重复计算:http://www.pep.com.cn/images/200503/pic_247052.gif
最后计算:http://www.pep.com.cn/images/200503/pic_247053.gif
这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月Takahashi和Kanada用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。
4、Borwein四次迭代式:
初值:http://www.pep.com.cn/images/200503/pic_247054.gif
重复计算: http://www.pep.com.cn/images/200503/pic_247055.gif
http://www.pep.com.cn/images/200503/pic_247056.gif
最后计算:http://www.pep.com.cn/images/200503/pic_247057.gif
这个公式由Jonathan Borwein和Peter Borwein于1985年发表,它四次收敛于圆周率。
DI
所谓DI,就是头脑奥林匹克(Drill instructor)的意思,北京叫DI,上海叫OM,是由美国引进的,主要是开发青少年的智力。
它的另外的意思就是:
控制反转DI(Dependency Injection)模式,就是Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。
⑦ pic单片机pid控制算法参数整定
我这有51的
#include <stdlib.h>
#include "global_varible.h"
/****************************************************************************
* 模块名: PID
* 描述: PID调节子程序
* 采用PID-PD算法。在偏差绝对值大于△e时,用PD算法,以改善动态品质。
* 当偏差绝对值小于△e时,用PID算法,提高稳定精度。
* PIDout=kp*e(t)+ki*[e(t)+e(t-1)+...+e(1)]+kd*[e(t)-e(t-1)]
*============================================================================
* 入口: 无
* 出口: 无
* 改变: PID_T_Run=加热时间控制
*****************************************************************************/
void PID_Math(void)
{
signed long ee1; //偏差一阶
//signed long ee2; //偏差二阶
signed long d_out; //积分输出
if(!Flag_PID_T_OK)
return;
Flag_PID_T_OK=0;
Temp_Set=3700; //温度控制设定值37.00度
PID_e0 = Temp_Set-Temp_Now; //本次偏差
ee1 = PID_e0-PID_e1; //计算一阶偏差
//ee2 = PID_e0-2*PID_e1+PID_e2; //计算二阶偏差
if(ee1 > 500) //一阶偏差的限制范围
ee1 = 500;
if(ee1 < -500)
ee1 = -500;
PID_e_SUM += PID_e0; //偏差之和
if(PID_e_SUM > 200) //积分最多累计的温差
PID_e_SUM = 200;
if(PID_e_SUM < -200)
PID_e_SUM = -200;
PID_Out = PID_kp*PID_e0+PID_kd*ee1; //计算PID比例和微分输出
if(abs(PID_e0) < 200) //如果温度相差小于1.5度则计入PID积分输出
{
if(abs(PID_e0) > 100) //如果温度相差大于1度时积分累计限制
{
if(PID_e_SUM > 100)
PID_e_SUM = 100;
if(PID_e_SUM < -100)
PID_e_SUM = -100;
}
d_out = PID_ki*PID_e_SUM; //积分输出
if(PID_e0 < -5) //当前温度高于设定温度0.5度时积分累计限制
{
if(PID_e_SUM > 150)
PID_e_SUM = 150;
if(PID_e_SUM > 0) //当前温度高于设定温度0.5度时削弱积分正输出
d_out >>= 1;
}
PID_Out += d_out; //PID比例,积分和微分输出
}
else
PID_e_SUM=0;
PID_Out/=100; //恢复被PID_Out系数放大的倍数
if(PID_Out > 200)
PID_Out=200;
if(PID_Out<0)
PID_Out=0;
if(PID_e0 > 300) //当前温度比设定温度低3度则全速加热
PID_Out=200;
if(PID_e0 < -20) //当前温度高于设定温度0.2度则关闭加热
PID_Out=0;
Hot_T_Run=PID_Out; //加热时间控制输出
PID_e2 = PID_e1; //保存上次偏差
PID_e1 = PID_e0; //保存当前偏差
}
////////////////////////////////////////////////////////////void PID_Math() end.
⑧ 你好!我想了解视频文件的格式都有哪几种,音频文件的格式有哪几种
视频文件有很多种类。所有的格式家起来上百种。下面说的是目前最主要的流派。
1 *. MPEG/.MPG/.DAT
MPEG也是Motion Picture Experts Group 的缩写。这类格高盯式包括了 MPEG-1, MPEG-2 和 MPEG-4在内的多种视频格式。MPEG-1相信是大家接触得最多的了,因为目前其正在被广泛地应用在 VCD 的制作和一些视频片段下载的网络应用上面,大部分的 VCD 都是用 MPEG1 格式压缩的 ( 刻录软件自动将MPEG1转为 .DAT格式 ) ,使用 MPEG-1 的压缩算法,可以把一部 120 分钟长的电影压缩到 1.2 GB 左右大小。MPEG-2 则是应用在 DVD 的制作,同时在一些 HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当多的应用。使用 MPEG-2 的压缩算法压缩一部 120 分钟长的电影可以压缩到 5-8 GB 的大小(MPEG2的图像质量是MPEG-1所无法比拟的)。
2 *.AVI
AVI,音频视频交错(Audio Video Interleaved)的英文缩写。AVI这个由微软公司发表的视频格式在视频领域已经存在好几个年头了。AVI格式调用方便、图像质量好,但缺点就是文件体积过于庞大。
3 *.RA/RM/RAM
*.RM, Real Networks公司所制定的音频/视频压缩规范Real Media中的一种,Real Player能做的就是利用Internet资源对这些符合Real Media技术规范的音频/视频进行实况转播。在Real Media规范中主要包括三类文件:RealAudio、Real Video和Real Flash (Real Networks公司与Macromedia公司合作推出的新一代高压缩比动画格式)。REAL VIDEO (RA、RAM)格式由一开始就是定位就是在视频流应用方面的,也可以说是视频流技术的始创者。它可以在用 56K MODEM 拨号上网的条件实现不间断的视频播放,可戚团和是其图像质量比VCD差些,如果您看过那些RM压缩的影碟就可以明显对比出来了。
4 *.MOV
使用过Mac机的朋友应该多少接触过QuickTime。QuickTime原本是Apple公司用于Mac计算机上的一种图像视频处理软件。Quick-Time提供了两种标准图像和数字视频格式 , 即可以支持静态的*.PIC和*.JPG图像格式,动态的基于Indeo压缩法的*.MOV和基于MPEG压缩法的*.MPG视频格式。
5 其他本地播放的视频格式
除上面这些以外,还有很多中格式,
电影片段.WAX,一般是列表文件
SWF——swf是flash
MKV也是一种文件封装格式,和AVI差不多,不过他是新兴的,还不是主流
6 流媒体格式
下面再单独介绍一下能远程控制的流媒体格式。流媒体是我们经常在网上在线观看的,现在比较流行的是rtsp和mms协议,RTSP(Real Time Streaming Protocol实时流协议)是由RealNetworks和Netscape共同提出的,主要支持.rm和.rmvb格式的流媒体文件, 以Realnetworks公司的流媒体服务器为代表,其根据不同的网络带宽提供同一视屏的不同清晰度媒体流是流媒体技术上的一个闪光点,不过,随着用户带宽越来越大,这个技术变得越来越不重要,取而代之的是微软提出的MMS (Microsoft Media Server Protocol)。下面介绍两种MS的流媒体格式:
*.ASF
ASF (Advanced Streaming format高级流格式)。ASF 是 MICROSOFT 为了和现在的 Real player 竞争而发展出来的一种可以直接在网上观看视频节目的文件压缩格式。ASF使用了 MPEG4 的压缩算法,压缩率和图像的质量都很不错。因为 ASF 是以一个可以在网上即时观赏的视频“流”格式存在的,所以它的图像质量比 VCD 差一点点并不出奇,但比同是视频“流”或桥格式的 RAM 格式要好。
ASF [因为都属于Microsoft公司的,所以一般ASF文件都是wmv wma编码的。]
*.WMV
一种独立于编码方式的在Internet上实时传播多媒体的技术标准,Microsoft公司希望用其取代QuickTime之类的技术标准以及 WAV、AVI之类的文件扩展名。WMV的主要优点在于:可扩充的媒体类型、本地或网络回放、可伸缩的媒体类型、流的优先级化、多语言支持、扩展性等。
———————————我是分割线————————————
音频的文件格式也很多
包括
波形声音:真正的声音,获得音频最常用、最方便、最简单的方法,存为.WAV文件
MIDI音频:乐器数字接口,是电子音乐 设备与计算机的通讯标准。是记录声音的 音长、音调等的文件指令。
CD音乐:用16位、44.1KHz的采样频率,需要用CD-ROM进行播放。存为.cda文件
电脑中常用的格式包括:
1、WAV文件:.wav波形文件,最常用
2、MIDI文件:.mid文件
3、AIF文件:.snd文件,macintosh机用
4、VOC文件:.voc声音文件,早期
5、CD:.cda文件
6、au: .au文件,网络用
7、mp3,可以实现12:1的压缩比例,利用了知觉音频编码技术,也就是利用了人耳的特性,削减音乐中人耳听不到的成分,同时尝试尽可能地维持原来的声音质量。
8、mp3PRO,在原来mp3技术的基础上专门针对原来mp3技术中损失了的音频细节进行独立编码处理并捆绑在原来的mp3数据上,在播放的时候通过再合成而达到良好的音质效果。
9、Real Media,是从极差的网络环境下发展过来的,所以Real Media的音质并不怎样
10、Mole(简称mod)是数码音乐文件,由一组samples(乐器的声音采样)、曲谱和时序信息组成
实在太多了,不过平时能见到的也就这些,还有什么疑问可以继续补充,我会及时给你回答