Have fun with sci.dog

技术

做科研、汇报ppt的技巧

fx4722阅读(687)

排版建议:

字体:Sans Serif front(Arial)

字号: 18pt, 20pt, 24pt, 28pt, 36pt 参考文献: 14pt

背景颜色:尽量避免使用复杂花哨的背景,使用对比度高的颜色,对于大的演讲厅,使用深蓝或黑色背景效果较好,对于小教室,亮色背景黑色字体;经典的颜色搭配是:白底黑字蓝色标题 以及 黑底白字黄色标题

结构:每个幻灯片都应该有标题,标题最好是一个简单的句子。

文字块:避免使用大量文字块,最好不超过2行

列表项:最好不超过3项,建议使用动画逐个显示

样式:每张幻灯片最好都有一张图,每张最多1~2个点,不放不需要的图。避免使用复杂的动画。

结构建议:

1、 从大的问题开头,逐渐细化;

2、使用 home slide 做转折;

3、用具体的结论来总结,最后回到大的框架,回到最初的‘大问题“;

4、使用home slide 结束,方便回答问题。

一般建议:

每一页幻灯片传达1~2个信息

把你要表达的主要内容用1句简单的话写出来。

避免使用bullet points,而是使用word tables

使用简单的示意图来表达你的观点,并标明示意图中的步骤、主要的结构;

标明数据和图的意义,让人们能看懂你的图;

参考油管视频:

https://www.youtube.com/watch?v=1fs_jqXGs8s

https://www.youtube.com/watch?v=Hp7Id3Yb9XQ

参考书籍:

The craft of scientific presentation 作者:Michael Alley

FFT 时 频域对应性质--周期、采样、Real or causal

fx4722阅读(1107)

1、 由于采样,导致了频率域的周期性,因此,对于数字采样的信号,我们可以只考虑 -Fs/2 ~ Fs/2 频率范围内的信号;

2、时间域的信号通常不可能是周期信号,而通常都是截断的,因此,对应的频率谱通常是连续的,因此用离散的频率成分表达时,通常会引起频率泄露。

3、当一个信号只有实部的时候,他的频率是共轭对称的,即幅度谱对称,而相位谱反对称;对应的实部偶对称,而虚部是奇对称的;

4、当时域信号是因果的,那么对应频谱的实部和虚部是希尔伯特变换对。这样可以保证t<0时,等于零;

可以参考:http://www.dspguide.com/

win10下WSL安装并使用seismic unix

fx4722阅读(1455)

最近在跑一个有限差分的模拟程序,一直是在Mac上运行,由于模型复杂以后,在Mac上运行时间变长了,为了方便调试,准备在实验室的机器上运行程序。但是实验室的机器上安装的是win10系统,为了搭建Linux开发环境,有几种方案:(1)虚拟机(2)Linux双系统(3)cygwin(4)win10下的Linux子系统(WSL);

使用WSL比较简单方便,具体的安装方法网上有很多,可以参考下面的链接。

https://www.cnblogs.com/linuxprobe/p/13063201.html

安装使用一段时间后的感觉是,WSL还是挺神器的。在windows系统下完美的实现了Linux系统的使用,方便流畅,又不需要频繁的在两个系统之间切换,很不错。但是WSL没有图形界面,网上有很多方案可以利用Xming等工具实现Ubuntu的界面显示,但是本编程狗平时并不需要Ubuntu下的各种图形界面工具,只是偶尔需要显示运行结果,使用seismic unix的同学应该知道,有绘图到x11的需求,但是在无界面的WSL无法实现。

找到一个简单的方法,简单介绍一下:

(1)首先下载安装Xming X Server for Windows,安装后运行Xlauch,配置如下

然后在 ~/.bashrc 中添加以下命令:export DISPLAY=:1.0

(2) 下载并安装图形化客户端 xfce4-terminal

sudo apt-get install xfce4-terminal

安装完以后,在WSL命令行下,运行xfce4-terminal,即可开启客户端,就Okay啦,测试下: suplane | suxwigb &

意料之外的工频干扰

fx4722阅读(1456)

工频干扰,是指市电的供电频率,通过电磁波辐射或者与市电接入等方式,对电子线路产生串扰,影响电子线路正常工作、或者降低采集信号质量等问题。
中国的市电频率是50Hz,美国是60Hz,其他地区也有差异。

之前参与的一个仪器设计项目里,在采集电路的采集信号中,总算见识了耳闻已久的工频干扰,对采集信号的影响之大真是,远远超出我的想象,给大家分享一下。

图1是我们电路里的2个有用信号频率,778Hz和933Hz。在仪器的调试中,由于有用信号的能量特别低,电路中使用了多级高增益的运算放大器来放大有用信号;由于采集电路中“不幸”的掺杂入工频干扰,图2中可以看到电路滤波器通带内的,工频的基频和各个倍频信号都被放大了,结果导致我们需要的 778Hz和933Hz 有用信号基本完全被放大的工频能量淹没了。之前,电路组的几个工程师也完全没想到会看到这么严重的工频干扰,还是和放大倍数太大有关,现场有其他的仪器作业串扰也比较大。

图1:有用信号
图2:工频干扰下的采集信号

最后,这“意想不到”的工频干扰,我们只能是设计陷波器或者其他滤波器将他们一一除去;跟大家分享一下,也许以后你们也会被工频信号“骚扰”一下。哈哈

C# DispacherTimer 计时器

fx4722阅读(1290)

1. DispacherTimer 是什么?

DispacherTimer在 System.Windows.Threading下定义的类,使用前需要加上:
using System.Windows.Threading;

2. 如何使用 DispacherTimer ?

通过Interval设置计时器的时间间隔,每隔一段固定时间,就执行Tick事件所挂接的用户编写的程序。

    // 设置自动检测事件间隔
   autoDetectionTimer.Interval = new TimeSpan(0, 0, 0, 0, 50);
   // 自动检测时间到->执行事件 挂接函数
   autoDetectionTimer.Tick += new EventHandler(AutoDectionTimer_Tick);
   // 开启定时器
   autoDetectionTimer.Start();
   // 挂接函数: your program here
    private void AutoDectionTimer_Tick(object sender, EventArgs e)
    {
      // your program here....
      // 可以直接更新UI控件
    }
   // .....
   // 关闭定时器
   // autoDetectionTimer.Stop();

3. 与其他C#里的定时器有什么区别?

与System.Timers.Timer() 的主要区别是,DispacherTimer运行在UI线程,可以直接更新UI画面,而其他定时器运行在非UI线程,如需更新UI画面,需要使用this.Dispatcher切换到UI线程后使用Invoke或者BeginInvoke方法更新UI画面。

4. 小贴士: 看懂“类视图”和“对象浏览器”图标

“类视图”和“对象浏览器”图标

Matlab 值得推荐的几个实用命令和技巧

fx4722阅读(827)

  1. 采集多路数据,使用Matlab显示时,使用linkaxes可以在放大、拖动等操作时,同步各图的横纵坐标。用于查看多图数据时非常实用!
    income = [3.2 4.1 5.0 5.6];
    outgo = [2.5 4.0 3.35 4.9];
    ax(1)= subplot(2,1,1); plot(income)
    title(‘Income’)
    ax(2)= subplot(2,1,2); plot(outgo)
    title(‘Outgo’)
    linkaxes(ax, ‘x’)

  2. 用text函数直接在figure中写出latex风格公式;可以在绘图中漂亮的显示公式;

    syms x;

    text(.5,.5,[‘$’,latex(x^(2*x^x+x/3)),’$’],’interpreter’,’latex’,’HorizontalAlignment’,’center’,’fontsize’,18)
    Screen Shot 2019-04-10 at 6.19.20 PM.png

  3. 使用eval() 可以很方便的将载入或写出 连续数据名称;
    和 feval() 语句 可以把已知的数据或符号带入到一个定义好的函数句柄中
    Load MAT-files August1.mat to August10.mat into the MATLAB workspace:
    for d=1:10
    s = [‘load August’ int2str(d) ‘.mat’]
    eval(s)
    end

    在需要批量操作时,这两个函数非常方便。

  4. 向量化编程思路:在matlab中尽量少用for循环,而去使用向量化编程的思路,可以大大提高算法的效率,降低执行时间。
    多使用以下函数:
    bsxfun:    Apply an element-by-element binary operation to arrays A and B, with singleton expansion enabled.
    arrayfun:Apply function to each element of array.
    cellfun:   Apply function to each cell in cell array.
    网上有很多对比向量化编程和循环的运行时间的讨论文章可以参考。
  5.  调试的时候,在cmd window输命令,dbstop if error
    matlab会自动停在出错的那行,并且保存所有相关变量。
    这在调试程序的时候很有用。

 

 

 

Windows和Mac共享文件的方法

fx4722阅读(868)

回国后,被迫回到用windows的世界。只好mac和windows一起用 sad….

碰到一个问题,就是总是需要在两台电脑之间传一些文件,总是拿u盘拷来拷去真是很麻烦。

下面给大家来一个简单的方法。?

首先,你的两台电脑需要公用一个wifi。

Step1: 新建用户

然后,进入Windows电脑桌面,右键单击“我的电脑”–选择“管理”选项,在“管理”界面,依次展开–“本地用户和组”–“用户”,接着在用户界面空白处单击鼠标右键–新建一个我们用来设置账户和密码的“新用户”。

Snipaste_2018-09-10_15-54-15

Step2:共享文件夹

新建一个文件夹,你想要共享的内容都放进这个文件夹,我的是ShareWithMac

设置文件夹的共享属性,右键选择“属性”,在属性中选择“高级共享”,然后点击“权限”,“添加”我们刚刚创建的新用户,添加成功之后选择所有可勾选的“权限”,最后“确定” — “确定” — “关闭”。

Snipaste_2018-09-10_15-56-03

Step3: 获取ip地址或者或机器名

cmd ——  输入ipconfig —— 查看 IPv4地址

Snipaste_2018-09-10_16-01-36

WIN+R打开“运行”对话框。 输入sysdm.cpl,按回车键,可以获取机器名,我的是fox-PC

Snipaste_2018-09-10_16-03-12

Step 4: MAC访问windows共享文件

点击finder,点击go,然后点connect to server,然后输入smb:// + ip地址或者机器名,然后输入账户名和密码(也就是在step2里新建的账户),然后选择共享文件夹。

Screen Shot 2018-09-10 at 4.06.46 PM.pngScreen Shot 2018-09-10 at 4.07.57 PM

然后就成功啦~~~我的效果是这样,使用起来非常方便!?

Screen Shot 2018-09-10 at 4.10.36 PM

网上很多方法都是直接用windows登录时的用户名和密码账户来连接,而不是新建账户,我尝试用登录账户一直无法登录,改了很多设置也没奏效。新建帐号以后立刻就成功了。?希望对大家有用。

 

Word输入特殊字符

ALPFF阅读(831)

在word中可以通过输入字符的Unicode代码,然后用Alt+X将该Unicode代码转换为需要的字符。

如:

2611,–>①

Unicode字符查询网站推荐:https://unicode-table.com/cn/

该网站支持中文哦!

常用Unicode代码

2611   ①

1F5F9 ?